MongoDB es un sistema gestor de bases de datos orientado a documentos y de código abierto que pertenece a la familia NoSQL. En lugar de almacenar información en tablas y filas como lo hace un sistema relacional tradicional, MongoDB organiza los datos en colecciones de documentos con formato similar a JSON. Esto le permite almacenar estructuras de datos complejas y heterogéneas de forma natural, escalar horizontalmente con facilidad y adaptarse a esquemas que evolucionan con el tiempo — características especialmente útiles en aplicaciones modernas de alto volumen.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/tutosrive/db-nosql-2026-1/llms.txt
Use this file to discover all available pages before exploring further.
Conceptos Clave
Antes de escribir una sola línea de código, conviene mapear la terminología de los sistemas relacionales (SQL) al mundo MongoDB. Aunque los conceptos no son perfectamente equivalentes, la siguiente tabla sirve como punto de partida:| SQL | MongoDB | Descripción |
|---|---|---|
| Database | Database | Contenedor de nivel superior para los datos |
| Table | Collection | Agrupación de documentos relacionados |
| Row | Document | Unidad básica de almacenamiento (formato BSON) |
| Column | Field | Clave dentro de un documento |
| Primary Key | _id | Identificador único por documento |
| JOIN | Documento embebido / $lookup | Estrategia de relación entre entidades |
| Schema fijo | Esquema flexible | MongoDB no exige la misma estructura en cada documento |
La ausencia de un esquema rígido es una de las principales ventajas de MongoDB frente a los RDBMS, pero también requiere mayor disciplina en el diseño del modelo de datos.
Documentos BSON
Internamente, MongoDB almacena los datos en formato BSON (Binary JSON), una representación binaria de JSON que añade tipos de datos adicionales comoDate, ObjectId, Decimal128, expresiones regulares y binarios arbitrarios. Para el desarrollador, los documentos lucen y se manipulan exactamente como objetos JSON.
Tipos de datos comunes en BSON
| Tipo BSON | Ejemplo en mongosh |
|---|---|
String | "Manizales" |
Integer (int32) | 3 |
Double | 4.5 |
Boolean | true |
Date | new Date("1990-05-15") |
ObjectId | ObjectId("507f1f77bcf86cd799439011") |
Array | ["catar", "bailar"] |
Object (subdocumento) | { city: "Manizales", state: "Caldas" } |
Null | null |
Ejemplo de documento
El siguiente documento es representativo del esquema utilizado en los ejercicios del curso (colecciónpersonas, importada desde la API de datos aleatorios):
name y el campo location son a su vez subdocumentos (documentos anidados), y que dob también contiene un objeto con dos campos. Esta capacidad de anidar estructuras de forma natural elimina la necesidad de múltiples tablas o JOINs para representar entidades compuestas.
Bases de Datos y Colecciones
Listar y seleccionar bases de datos
En mongosh (MongoDB Shell), los comandos fundamentales de navegación son:En MongoDB, una base de datos no se persiste en disco hasta que contiene al menos un documento. El comando
use mydb simplemente declara el contexto de trabajo actual.Crear una colección
Las colecciones se crean automáticamente al insertar el primer documento, pero también pueden crearse explícitamente para configurar opciones como validación o tamaño máximo:Eliminar colecciones y bases de datos
ObjectId
Cada documento en MongoDB posee un campo_id que actúa como clave primaria. Si no se especifica al insertar, MongoDB genera automáticamente un valor de tipo ObjectId.
Un ObjectId es un valor de 12 bytes codificado en hexadecimal (24 caracteres) con la siguiente estructura:
| Segmento | Tamaño | Contenido |
|---|---|---|
| Timestamp | 4 bytes | Segundos desde epoch Unix (permite extraer la fecha de creación) |
| Machine ID | 3 bytes | Identificador único del equipo |
| Process ID | 2 bytes | PID del proceso que generó el documento |
| Counter | 3 bytes | Contador incremental para evitar colisiones |