Docs Menu
Docs Home
/ /

Datos de referencia en su esquema MongoDB

Las referencias almacenan relaciones entre datos mediante la inclusión de enlaces, llamados referencias, de un documento a otro. Las aplicaciones pueden resolver estas referencias para acceder a los datos relacionados. En el siguiente ejemplo, contact y access documentos contienen una referencia al documento user.

Modelo de datos que utiliza referencias para vincular documentos. Tanto el documento de "contacto" como el documento de "acceso" contienen una referencia al documento del "usuario".

Las referencias producen modelos de datos normalizados porque los datos se dividen en múltiples colecciones y no se duplican.

Aunque un modelo de datos desnormalizado funciona para la mayoría de los casos en MongoDB, considera usar referencias en lugar de datos incrustados si:

  • La incrustación tendría como resultado la duplicación de datos, pero no ofrecería suficientes ventajas de rendimiento de lectura para compensar las implicaciones de dicha duplicación. Por ejemplo, cuando los datos incrustados cambian con frecuencia.

  • Necesita representar relaciones complejas de muchos a muchos o grandes conjuntos de datos jerárquicos.

  • Es necesario consultar frecuentemente a la entidad relacionada por sí sola.

En determinadas situaciones, es posible que elija almacenar información relacionada en varias colecciones en lugar de en una sola.

Considera una colección de muestra, logs, que almacena documentos de registro para varios entornos y aplicaciones. La colección logs contiene documentos del siguiente formato:

{ log: "dev", ts: ..., info: ... }
{ log: "debug", ts: ..., info: ...}

Si el número total de documentos es bajo, puede agruparlos en colecciones por tipo. Para los registros, considere mantener colecciones de registros distintas, como logs_dev y logs_debug.

Generalmente, tener un gran número de colecciones no supone una pérdida significativa de rendimiento y se traduce en un buen rendimiento. Disponer de colecciones diferenciadas es fundamental para el procesamiento por lotes de alto rendimiento.

Cuando utiliza modelos que tienen una gran cantidad de colecciones, tenga en cuenta los siguientes comportamientos:

  • Cada colección tiene una sobrecarga mínima determinada de unos pocos kilobytes.

  • Las operaciones de lectura no indexadas pueden consumir una gran cantidad de memoria.

  • Para cada uno Base de datos: un único archivo de espacio de nombres (como) <database>.ns almacena todos los metadatos de esa base de datos. Cada índice y colección tiene su propia entrada en el archivo de espacio de nombres. Consulte los límites de longitud del espacio de nombres de lugares para conocer las limitaciones específicas.

Para consultar datos normalizados en múltiples colecciones, MongoDB proporciona las siguientes etapas de agregación de datos:

Para un ejemplo de modelos de datos normalizados, vea Modelar relaciones de uno a muchos con referencias de documentos.

Para ejemplos de varios modelos de árbol, vea Modelar estructuras en forma de árbol.

Volver

Datos incrustados

Obtén una insignia de habilidad

¡Domina el "Modelo relacional orientado a documentos" gratis!

Más información

En esta página