Instalar MongoDB en MacOS con Homebrew o Windows y operaciones CRUD

Video thumbnail

Vamos a conocer como podemos instalar MongoDB si estamos en MacOS; para esto vamos a partir de que tienes instalado Homebrew que es simplemente un gestor de paquetes para MacOS y Linux.

Realizar algunas prácticas para emplear una base de datos NoSQL, específicamente MongoDB, en FastAPI. Antes de comenzar, compararemos MongoDB con las bases de datos tradicionales de tipo relacional (SQL).

SQL vs. NoSQL

  • Bases de Datos Relacionales (SQL): Como hemos visto hasta ahora, son estructuradas. Funcionan como tablas de Excel vinculadas entre sí. Tienen un esquema fijo; por ejemplo, si tienes una tabla de "tareas" con ID y Nombre, y luego quieres guardar una Descripción, debes modificar obligatoriamente el esquema de la base de datos.
  • Bases de Datos NoSQL (MongoDB): Son bases de datos no estructuradas (o semi-estructuradas). Los datos se almacenan de manera flexible, generalmente en formatos similares a JSON. Esto permite cambiar la estructura sin previo aviso. Por ejemplo, podemos inyectar una "categoría" directamente dentro del esquema de una "tarea".

Ventajas y Desventajas

Ventajas:

  • Flexibilidad: Ideal para prototipos rápidos y esquemas cambiantes.   
  • Escalabilidad masiva: Diseñadas para manejar volúmenes de datos gigantescos.
  • Rapidez: Suelen ser más eficientes para operaciones de lectura/escritura simples.    

Desventajas:

  • Menor consistencia: Al no tener un esquema fijo, pueden volverse un lío si no se gestionan bien.
  • Consultas complejas: Es más difícil realizar uniones (joins) o consultas muy intrincadas.
  • Madurez: Aunque son populares, el ecosistema SQL tiene décadas de mayor soporte y estabilidad.

Instalación en Windows

La instalación en Windows es muy sencilla:

  1. Busca en Google MongoDB Community Server.
  2. Descarga el instalador y sigue los pasos típicos (Next, Next, Finish).
  3. Configuración de variables de entorno: Es probable que debas agregar la ruta de instalación (usualmente la carpeta bin) a las variables de entorno del sistema.
    1. Tip: Haz clic derecho sobre "Mi Equipo" -> Propiedades -> Configuración avanzada -> Variables de entorno -> Path -> Agregar la ruta de la carpeta bin.
  4. Reinicia el equipo y ya podrás utilizar el comando mongosh.

Instalación en macOS (usando Homebrew)

Instalar MongoDB en macOS puede parecer complicado la primera vez, pero usando Homebrew el proceso es mucho más sencillo y limpio. En esta guía te explico paso a paso cómo instalar MongoDB en MacOS con Homebrew, cómo iniciarlo correctamente y cómo empezar a trabajar con la base de datos realizando operaciones CRUD básicas.

Este flujo es el que utilizo siempre que configuro un entorno de desarrollo nuevo en Mac, y evita la mayoría de errores típicos que suelen aparecer al arrancar MongoDB por primera vez.

Ya con nuestro gestor de paquetes, nada más fácil, lo primero que tenemos que hacer es agregar el repositorio de MongoDB a nuestro gestor de paquetes.

Requisitos previos

Antes de instalar MongoDB, es importante asegurarnos de que el sistema tiene todo lo necesario.

macOS compatible

MongoDB funciona correctamente en las versiones modernas de macOS (Catalina en adelante). Si usas una versión muy antigua, es recomendable actualizar el sistema o instalar una versión compatible de MongoDB.

Instalación de Homebrew

macOS no incluye Homebrew por defecto, y es una de las herramientas más importantes para desarrollo en Mac. Homebrew es un gestor de paquetes que permite instalar software desde la terminal de forma sencilla.

Para instalarlo, sigue las instrucciones oficiales desde su web:

https://brew.sh/#install

Software necesario para instalar instalar MongoDB

Instalar las Command line tools for xcode 

Seguramente cuando vayas a ejecutar el comando de Brew para instalar el paquete, te pedirá que instales las command line tools for xcode, acepta y descarga e instala estas herramientas.

Es muy probable que, al ejecutar cualquier comando de brew, macOS te pida instalar las Command Line Tools for Xcode.

Acepta el mensaje y deja que se instalen, ya que son necesarias para compilar y ejecutar muchas dependencias.

Instalar Homebrew

¿Qué es un tap de Homebrew?

Un tap es simplemente un repositorio adicional que Homebrew usa para encontrar paquetes. MongoDB mantiene su tap oficial, lo cual es importante para evitar instalaciones no soportadas.

Comando para agregar el tap

Ahora si, vamos a instalar Homebrew, MacOS no incluye el paquete de preparación Homebrew por defecto; por lo tanto, tienes que instalarlo como indica en la página oficial. https://brew.sh/#install

Homebrew instala las cosas que necesitas para tu MacOS desde una terminal fácilmente.

$ brew tap mongodb/brew

Este paso es clave; muchos errores vienen de intentar instalar MongoDB sin usar el tap oficial.

Elegir la versión de MongoDB

MongoDB publica varias versiones. En este caso vamos a instalar una versión estable específica, que es la que mejor resultado me ha dado en macOS:

Instalar el Tap de Homebrew de MongoDB

Emita lo siguiente desde el terminal para tocar el grifo oficial de MongoDB Homebrew: https://github.com/mongodb/homebrew-brew

Este es un Tap (paquete) de Homebrew personalizado para el software oficial de MongoDB.

$ brew tap mongodb/brew

Luego de esto, instalamos la última versión a la fecha, que al momento de decir estas palabras sería:

$ brew install mongodb-community@8.2

O puedes instalar una versión especifica

$ brew install mongodb-community@8.0
$ brew install mongodb-community@7.0

Instalar una versión concreta evita incompatibilidades con librerías o con el sistema operativo, algo que ya me ha ahorrado más de un dolor de cabeza.

Interfaz Gráfica: MongoDB Compass

Para trabajar de una manera más agradable y no depender solo de la terminal, instalaremos MongoDB Compass, la herramienta oficial de interfaz gráfica.

  • En Windows: Se puede seleccionar durante la instalación del servidor o descargar por separado desde la web oficial.
  • En macOS (vía Homebrew):
    • $ brew install --cask mongodb-compass
    • (El parámetro --cask indica que estamos instalando una aplicación con interfaz gráfica).

Una vez instalado, lo encontrarás en tu carpeta de Aplicaciones. Ábrelo, conéctate al servidor local y ya estarás listo para gestionar tus colecciones de datos.

Tambien puedes instalarlo mediante el instalador en MacOS Windows:

https://www.mongodb.com/try/download/compass

Comprobación de la instalación de MongoDB

Una vez finalizado el proceso, MongoDB ya estará instalado en tu equipo, pero aún no estará en ejecución.

Iniciar el proceso de MongoDB

Ya con esto tenemos MongoDB en nuestro equipo; lo siguiente que vamos a hacer es iniciar el proceso, ya que si ejecutamos en nuestra terminal:

$ brew services start mongodb-community

Este comando es fundamental. Si no inicias el servicio y ejecutas mongo directamente, obtendrás un error de conexión.

Ya que si no lo inicias y escribes, mongo en la terminal, verás un error como el siguiente:

MongoDB shell version v8.0.2
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:372:17

Esto ocurre porque MongoDB no está escuchando en el puerto 27017.

Una vez iniciado correctamente, el comando:

$ mongo

Te permitirá acceder al shell sin problemas, o ver su versión instalada:

$ mongod --version

Iniciar el servicio

Al igual que ocurre con servicio como MySQL, para poder emplearlo, debemos de iniciar el servicio; ya que, si intentamos iniciar el asistende te Mongo sin iniciar:

$ mongosh

Veremos un error como el siguiente:

Current Mongosh Log ID: 699c28e47c1b4855cf41cae5

Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.7.0

MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017

Que dice que intenta conectarse pero el servidor de MongoDB NO respondió; iniciamos el servicio:

brew services start mongodb-community@8.2

Y ahora, si ejecutas el:

$ mongosh

Debería de saludarte con un:

test>

Detener o reiniciar MongoDB

Algunos comandos útiles que suelo usar:

$ brew services stop mongodb-community
$ brew services restart mongodb-community

⚠️ Errores comunes y cómo resolverlos

Error de conexión en localhost

Casi siempre se debe a que el servicio no está iniciado. Verifica con:

$ brew services list

Problemas de versiones incompatibles

Si cambiaste de versión de macOS o actualizaste MongoDB, puede ser necesario reinstalar la versión correcta o limpiar servicios antiguos.

Primeros pasos con MongoDB (CRUD básico)

Realizar Operaciones CRUD con MongoDB

Vamos a conocer como podemos realizar operaciones tipo CRUD empleando MongoDB, recuerda que las operaciones tipo CRUD son las que nos permite Crear, Leer, Actualizar y Eliminar (CRUD por sus siglas en inglés) respectivamente.

Operaciones para crear

Las operaciones de creación o inserción agregan nuevos documentos a una colección. Si la colección no existe actualmente, las operaciones de inserción crearán la colección.
MongoDB proporciona los siguientes métodos para insertar documentos en una colección:

db.collection.insertOne() 
db.collection.insertMany()

Operaciones de ejemplo:

var user2 = {
   name: 'Andres',
   last_name: 'Cruz',
   age: 29,
   email: 'andres@gmail.com'
}
var user3 = {
   name: 'Pablo',
   last_name: 'Lama',
   age: 30,
   email: 'pablo@gmail.com'
}
var user4 = {
   name: 'Luis',
   last_name: 'Yello',
   age: 99,
   email: 'pepe@gmail.com'
}
db.users.insertOne(user2)
db.users.insertMany(
   [user3, user4, user2]
)

Las cuales permiten insertar un solo registro o más de uno respectivamente.

Operaciones de lectura

Las operaciones de lectura recuperan documentos de una colección; es decir, consulta una colección de documentos. MongoDB proporciona la siguiente operación para leer documentos de una colección:

db.collection.find()
Operaciones de ejemplo:
db.users.find(
   { age: 25 },
   { name: true, email: true, _id: false }
).pretty()
db.users.find(
   { age: 25 },
   { email: false, _id: false }
).pretty()

Operaciones para Actualizar

Las operaciones de actualización modifican los documentos existentes en una colección. MongoDB proporciona los siguientes métodos para actualizar documentos de una colección:

db.collection.updateOne()
db.collection.updateMany()
db.collection.replaceOne()

Operaciones de ejemplo:

db.users.updateMany(
   {
       name: {
           $exists: true
       }
   },
   {
       $set: {
           name2: "Luisito"
       }
   }
)
db.users.updateOne(
   {
       name: {
           $exists: true
       }
   },
   {
       $unset: {
           name2: "Luisito"
       }
   }
)

Operaciones para Eliminar

Las operaciones de eliminación eliminan documentos de una colección. MongoDB proporciona los siguientes métodos para eliminar documentos de una colección:

db.collection.deleteOne()
db.collection.deleteMany()

Operaciones de ejemplo:

db.users.deleteOne({"_id": new mongo.ObjectID(id) })
db.users.deleteMany({"_id": new mongo.ObjectID(id) })

Consejos adicionales y buenas prácticas

  • Usa siempre el tap oficial de MongoDB
  • Instala versiones específicas para evitar incompatibilidades
  • No olvides iniciar el servicio antes de usar el shell
  • Para entornos productivos, habilita autenticación y backups
Aprende cómo instalar MongoDB en macOS con Homebrew paso a paso. Guía actualizada, errores comunes, inicio del servicio y ejemplos CRUD para realizar las primeras operaciones.

Acepto recibir anuncios de interes sobre este Blog.

Andrés Cruz

EN In english