≡En resumen
- MongoDB guarda los datos en documentos flexibles, parecidos a JSON, en lugar de en filas y columnas.
- No necesita un esquema fijo: cada documento de una colección puede tener campos distintos.
- Escala en horizontal con sharding y ofrece alta disponibilidad con conjuntos de réplicas.
- Desde la versión 4.0 admite transacciones ACID de varios documentos.
- Su licencia SSPL permite usarla gratis en tus proyectos, pero limita ofrecerla como servicio a terceros.
01 ¿Qué es Mongo (MongoDB)?
La desarrolló la empresa 10gen, que publicó la primera versión el 11 de febrero de 2009 y en 2013 pasó a llamarse MongoDB, Inc. El nombre viene de humongous, «gigantesco», por su objetivo de manejar grandes volúmenes de datos. Si necesitas el contexto general, en el diccionario tienes qué es una database o base de datos y los tipos que existen.
02 Cómo funciona MongoDB: documentos, colecciones y BSON
Documento
La unidad de datos, equivalente a una fila. Es un objeto con campos y valores que puede anidar otros objetos y listas.
Colección
Un grupo de documentos, equivalente a una tabla. No obliga a que todos tengan los mismos campos.
BSON
La representación binaria de JSON que usa MongoDB. Añade tipos como fechas, enteros de 64 bits o identificadores ObjectId.
Índices
Aceleran las consultas por uno o varios campos, igual que en una base de datos relacional.
Conjuntos de réplicas
Varias copias sincronizadas de los datos: si cae el servidor principal, otro toma el relevo.
Sharding
Reparte los datos entre varios servidores para crecer en horizontal cuando un solo equipo no basta.
Así se ve un documento de cliente: { "nombre": "Ana", "email": "ana@ejemplo.es", "direcciones": [ { "ciudad": "Valencia" } ] }. Quien conozca el formato JSON lo entiende a la primera, y por eso MongoDB encaja tan bien con aplicaciones JavaScript y con las API REST, que ya intercambian datos en ese formato. Las consultas se escriben también como objetos, por ejemplo db.clientes.find({ "direcciones.ciudad": "Valencia" }), desde el shell actual, mongosh, o desde los drivers oficiales para cada lenguaje.
03 MongoDB vs bases de datos SQL
| Aspecto | MongoDB | SQL (MySQL, PostgreSQL) |
|---|---|---|
| Modelo de datos | Documentos en colecciones | Filas en tablas con columnas fijas |
| Esquema | Flexible; se puede validar de forma opcional | Definido de antemano |
| Relaciones | Datos anidados o referencias; $lookup para uniones | JOIN entre tablas con claves foráneas |
| Escalado | Horizontal nativo con sharding | Vertical sobre todo; el horizontal requiere más trabajo |
| Transacciones | ACID en varios documentos desde la versión 4.0 | ACID desde siempre |
| Lenguaje de consulta | API de consultas y pipeline de agregación | SQL estándar |
| Encaja mejor en | Catálogos variados, contenidos, eventos, apps móviles, prototipos | Contabilidad, facturación, datos muy relacionados |
04 ¿Para qué sirve MongoDB? Casos de uso
- ✓Catálogos de productos con atributos distintos por categoría (tallas, voltajes, ingredientes).
- ✓Gestores de contenidos y apps con perfiles de usuario que cambian con el tiempo.
- ✓Backend de aplicaciones móviles y web que intercambian JSON con el frontend.
- ✓Registro de eventos, logs y datos de sensores (IoT) con gran volumen de escritura.
- ✓Prototipos y MVP en los que el modelo de datos todavía no está cerrado.
- ✓Búsqueda vectorial para aplicaciones de IA, disponible en MongoDB Atlas.
Es habitual verla en stacks JavaScript como MEAN o MERN (MongoDB, Express, Angular o React y Node.js). En nuestros proyectos de desarrollo de aplicaciones web a medida la elegimos cuando el modelo de datos lo justifica, y la combinamos con bases de datos relacionales cuando la parte de facturación o de informes lo pide.
05 Licencia de MongoDB: SSPL, Community y Enterprise
Hasta 2018, MongoDB Community Server se distribuía con licencia AGPL. Todas las versiones publicadas desde el 16 de octubre de 2018, incluidos los parches de versiones anteriores, usan la Server Side Public License (SSPL), creada por la propia MongoDB. La SSPL no está aprobada por la Open Source Initiative, así que técnicamente MongoDB ya no se considera software de código abierto.
06 ¿Qué es MongoDB Atlas y cómo usarlo en la nube?
MongoDB Atlas es el servicio gestionado de MongoDB en la nube, lanzado en 2016. La empresa se encarga de instalar, actualizar, replicar y hacer copias de seguridad de la base de datos, que se despliega en AWS, Google Cloud o Microsoft Azure, en la región que elijas (también en Europa, algo importante para el RGPD). Además incluye búsqueda de texto completo y búsqueda vectorial.
| Plan | Precio | Para qué |
|---|---|---|
| Free | 0 $, con 512 MB de almacenamiento | Aprender y prototipos |
| Flex | Desde 0,011 $/hora, con un máximo de 30 $/mes | Proyectos pequeños con tráfico variable |
| Dedicated | Desde 0,08 $/hora (clúster M10, unos 57 $/mes) | Producción, con recursos reservados y escalado |
-
1
Crea la cuenta y el clúster
Elige proveedor de nube, región y plan. El gratuito basta para empezar.
-
2
Configura el acceso
Crea un usuario de base de datos y limita las IP que pueden conectarse. Nunca dejes el acceso abierto a cualquier dirección.
-
3
Conecta tu aplicación
Copia la cadena de conexión y úsala en el driver de tu lenguaje o en mongosh.
-
4
Activa copias y alertas
Revisa la política de copias de seguridad y las alertas de uso antes de pasar a producción.
07 Seguridad y buenas prácticas con MongoDB
- ✓Activa siempre la autenticación y no expongas el puerto de MongoDB a internet.
- ✓Aplica las actualizaciones de seguridad de tu rama en cuanto se publiquen.
- ✓Diseña el esquema según cómo se leen los datos, no copiando tablas SQL.
- ✓Crea índices para las consultas frecuentes y revisa las lentas con explain().
- ✓Usa validación de esquema en las colecciones críticas para evitar datos incoherentes.
- ✓Programa copias de seguridad y prueba a restaurarlas.
Si estás construyendo una app y dudas entre MongoDB y una base de datos relacional, nuestro equipo de desarrolladores de aplicaciones puede ayudarte a elegir el stack según tus datos, tu presupuesto y tu plan de crecimiento.
Preguntas frecuentes sobre Mongo
Es el nombre corto de MongoDB, una base de datos NoSQL que guarda la información en documentos con estructura tipo JSON en lugar de en tablas.
La edición Community se puede usar gratis con licencia SSPL, y MongoDB Atlas tiene un plan gratuito de 512 MB. La edición Enterprise y los planes superiores de Atlas son de pago.
Es NoSQL: no usa tablas ni el lenguaje SQL, sino documentos BSON y su propia API de consultas y agregación.
Ya no según la definición de la OSI. Desde el 16 de octubre de 2018 usa la licencia SSPL, que permite ver y modificar el código pero restringe ofrecerlo como servicio a terceros.
MySQL es relacional, con tablas y esquema fijo; MongoDB guarda documentos flexibles y escala en horizontal. MySQL encaja mejor con datos muy relacionados y MongoDB con datos variables.
Es el servicio gestionado de MongoDB en la nube, disponible en AWS, Google Cloud y Azure, en el que la empresa se ocupa de la infraestructura, las réplicas y las copias.
Para catálogos de productos, gestores de contenidos, backends de apps web y móviles, registro de eventos y aplicaciones de IA con búsqueda vectorial.
Fuentes consultadas
Sobre el autor
Germán Gutiérrez
Development Manager en appyweb
Dirige el equipo de desarrollo de appyweb: aplicaciones web y móviles, SaaS, integraciones y arquitectura de software.
Ver perfil en LinkedIn ↗