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 los campos access son documentos incrustados:
Los modelos de datos integrados a menudo se consideran desnormalizados porque los datos a los que se accede con frecuencia están duplicados en múltiples colecciones.
Los modelos de datos incrustados permiten a las aplicaciones consultar información relacionada en el mismo registro de base de datos. Como resultado, la incrustación ofrece las siguientes ventajas:
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 Sistema operativo 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 tiene una colección con una gran cantidad de documentos pequeños, considere incrustarlos para mejorar el rendimiento. Si puede agruparlos mediante una relación lógica y los recupera con frecuencia mediante esta agrupación, podría considerar agruparlos en documentos más grandes que contengan una matriz de documentos incrustados.
Agrupar estos documentos pequeños en grupos lógicos implica que las consultas para recuperar un grupo de documentos implican lecturas secuenciales y menos accesos aleatorios al disco. Además, agrupar los documentos y mover los campos comunes al documento más grande beneficia el índice de estos campos. Habría menos copias de los campos comunes y menos entradas clave 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, la acumulación de documentos podría no ofrecer un mejor rendimiento. Además, si los documentos pequeños e independientes representan el modelo natural para los datos, debería 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: