← Lumbre

Bases de Datos NoSQL · 6.º Bases de documentos (MongoDB)

Portada de Bases de documentos (MongoDB)

Bases de documentos (MongoDB)

✦ Una base de documentos guarda cada entidad como un objeto completo, con listas y subobjetos dentro, de modo que la información relacionada viaja junta · Bases de Datos NoSQL · Bases de Datos · 9 minutos que valen la pena

Roadwise Consulting

Firmado y verificado · Biblioteca UNIV

Objetivo: Modelar datos semiestructurados como documentos anidados y consultarlos con proyecciones, filtros y agregaciones, entendiendo las compensaciones frente al modelo relacional.

9 min Bases de Datos NoSQL · Bases de Datos 18–30 años
Más
Bases de documentos (MongoDB)

Herramientas de la lección

◉ Entrar a La Matrix Sorpréndeme

Sobre este contenido

Ir a

Volver a Bases de Datos NoSQL · 6.º semestre Cursos Explorar Mi cuenta Salir del modo estudio

Bases de documentos

Curso MongoDB desde cero
Vídeo en español que recorre documentos, colecciones y consultas en MongoDB paso a paso.

El documento

Cada registro es un objeto tipo JSON, serializado en BSON, con campos ordenados, tipos diversos y subestructuras anidadas. No hay un esquema fijo que obligue a todas las filas a compartir columnas, lo que admite heterogeneidad dentro de una misma colección.

Una tarjeta luminosa que guarda dentro subcajas anidadas y una pequeña lista, frente a filas de tablas difuminadas en el fondo.
Un documento guarda la entidad entera con sus subestructuras, viajando unida; el fondo recuerda la alternativa relacional de repartirla entre varias tablas.

Colecciones y clave

Los documentos se agrupan en colecciones, emparentadas con las tablas pero más laxas. Cada uno recibe un identificador único generado por el motor, con marca temporal, que sirve para enrutar y ordenar.

Embebido frente a referenciado

Puedes incrustar los datos relacionados dentro del documento o guardar solo referencias a otros. Se embebe cuando la relación es de uno a pocos y se leen juntos; se referencia cuando crece sin límite o se consulta suelta, para no inflar documentos ni duplicar.

Consultas

Se filtra por campos con operadores comparativos y lógicos, y se proyecta qué devolver. Los índices aceleran los filtros igual que en relacional, y se puede ordenar y limitar el resultado.

Agregación

El pipeline de agregación encadena etapas: selecciona documentos, los reorganiza con agrupaciones, desenvuelve listas y calcula métricas. Es el equivalente a un group by con extras, pero por etapas componibles.

Qué ganas y qué pierdes

  • Ganas flexibilidad de esquema y lecturas de un solo disparo sobre datos cohesionados.
  • Pierdes las garantías de integridad referencial y las uniones baratas entre colecciones.
  • Ganas escalado horizontal sencillo a cambio de pensar el modelo al reescribirlo.

Atomicidad por documento

La escritura sobre un único documento es atómica, lo que hace muy cómodas las operaciones donde todo o nada afecta a una entidad. Cruzar documentos exige transacciones, más caras y no siempre disponibles.

Errores frecuentes

  • Embeber relaciones que crecen sin límite, hasta reventar el tamaño del documento.
  • Copiar el modelo relacional tabla por tabla en vez de pensar la consulta dominante.
  • Olvidar los índices sobre los campos filtrados y pagar escaneos completos en cada lectura.

Ejemplo resuelto: modelar un catálogo de cursos

Una plataforma quiere mostrar la ficha de un curso con sus lecciones en una sola lectura. El diseño:

  1. Partir de la lectura dominante: ficha completa del curso, no consultas sueltas de lecciones.
  2. Embeber las lecciones dentro del documento del curso, pues son acotadas y se leen juntas.
  3. Referenciar en cambio profesores e inscripciones, entidades compartidas y con crecimiento propio.
  4. Indexar el slug del curso para que la ficha llegue sin escanear la colección.

¿Para qué sirve en la realidad?

Perfiles con preferencias, catálogos con variantes, eventos con listas de asistencia: todo dominio con entidades cohesionadas y esquemas que cambian encuentra en los documentos lecturas de un disparo y evolución de campos sin migraciones dolorosas.

Un artículo de blog admite comentarios y quieres leer el artículo con sus comentarios más recientes en una sola operación. La decisión de modelado más adecuada suele ser:

En una base de documentos todas las filas de una colección están obligadas a tener exactamente los mismos campos.

Documentos

Formato de almacenamiento típico de MongoDB
BSON
Agrupación de documentos equivalente a tabla
coleccion
Incrustar datos relacionados se llama...
embeber
Guardar solo punteros a otros documentos
referenciar
Encadenar etapas de cálculo sobre documentos
pipeline de agregacion

Toca una tarjeta para ver la respuesta.

Ordena las etapas típicas de un pipeline de agregación para un informe:

Arrastra cada ficha a su categoría (o tócala y luego toca la categoría). También puedes usar el teclado.

Une cada decisión de modelado con cuándo conviene.

      Modela según la lectura

      • Bases de documentos
        • Documento
          • JSON con anidados
            • BSON
            • Modelado
              • embeber si se lee junto
                • referenciar si crece
                • Consulta
                  • filtros y proyección
                    • pipeline de agregación
                    • Límites
                      • sin uniones baratas
                        • transacciones costosas

                      Estás modelando una red social con seguidores potencialmente ilimitados por usuario. ¿Embebes la lista de seguidores o la referencias? Argumenta con tamaño de documento y patrón de lectura.

                      Tu texto se guarda sólo en este dispositivo.

                      Las respuestas y tu progreso se guardan sólo en este dispositivo. Contenido firmado por su autoría mediante Lumbre.
                      Más sobre esta lección
                      Explora temas relacionados

                      Conceptos

                      Comentarios

                      Inicia sesión para comentar.

                      Todavía no hay comentarios. Sé la primera persona en opinar.