Los documentos incrustados almacenan datos relacionados en una única estructura de documento. Un documento puede contener arreglos y subdocumentos con datos relacionados. Estos modelos de datos desnormalizados permiten a las aplicaciones recuperar datos relacionados en una sola operación de base de datos.
En el siguiente ejemplo, el contact y access campos son documentos incrustados:
Los modelos de datos embebidos a menudo se consideran desnormalizados porque los datos a los que se accede con frecuencia se duplican en varias colecciones.
Los modelos de datos embebidos permiten a las aplicaciones consultar piezas de información relacionadas dentro del mismo registro de base de datos. Como resultado, la integración proporciona los siguientes beneficios:
Mejor rendimiento para las operaciones de lectura
La capacidad de recuperar datos relacionados en una única operación de base de datos
La capacidad de actualizar datos relacionados en una única operación de escritura atómica
Los documentos incrustados almacenan datos relacionados en una única estructura de documento. Un documento puede contener arreglos y subdocumentos con datos relacionados. Estos modelos de datos desnormalizados permiten a las aplicaciones recuperar datos relacionados en una sola operación de base de datos.
Nota
Límite de tamaño del documento
Los documentos de MongoDB deben ser más pequeños que 16 mebibytes.
Para datos binarios grandes, considere GridFS.
Casos de uso
Utilice modelos de datos incrustados en los siguientes escenarios:
Hay relaciones de tipo "contiene" entre entidades. Por ejemplo, un documento
contactsque contiene unaddress. Se debe consultar Modelar relaciones de uno a uno con documentos incrustados.Tiene relaciones de uno a muchos entre entidades. En estas relaciones, los "muchos" o documentos secundarios se ven en el contexto de los "uno" o documentos principales. Consulte Modelar relaciones de uno a muchas con documentos incrustados.
Colecciones con un gran número de documentos pequeños
Si posees una colección con una gran cantidad de documentos pequeños, considera usar embedding para mejorar el rendimiento. Si puedes agrupar estos pequeños documentos según alguna relación lógica y recuperas frecuentemente los documentos mediante este agrupamiento, podrías considerar "consolidar" los pequeños documentos en documentos más grandes que contengan un arreglo de documentos incrustados.
"Consolidar" estos pequeños documentos en agrupamientos lógicos significa que los queries para recuperar un grupo de documentos implican lecturas secuenciales y menos accesos aleatorios al disco. Además, "consolidar" documentos y mover campos comunes al documento más grande beneficia el índice en estos campos. Habría menos copias de los campos comunes y habría menos entradas de claves asociadas en el índice correspondiente. Consulte Índices para obtener más información sobre los índices.
Sin embargo, si a menudo solo necesita recuperar un subconjunto de los documentos dentro del grupo, entonces "recapitular" los documentos puede no proporcionar un mejor rendimiento. Además, si documentos pequeños y separados representan el modelo natural para los datos, deberías mantener ese modelo.
Consultar datos incrustados
Para consultar datos dentro de documentos incrustados, utilice notación de puntos. Para ejemplos de cómo consultar datos en arreglos y documentos incrustados, consulte: