Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Modela estructuras de árbol con referencias a hijos

Esta página describe un modelo de datos que describe una estructura tipo árbol en los documentos MongoDB almacenando referencias en los nodos padre a los nodos hijos.

El patrón Referencias de subproyectos almacena cada nodo de árbol en un documento; además del nodo de árbol, el documento almacena en un arreglo los ID(s) de los nodos hijos.

Considera la siguiente jerarquía de categorías:

Modelo de datos de árbol para una jerarquía de categorías de muestra.

El siguiente ejemplo modela el árbol utilizando Referencias de hijos, almacenando la referencia a los hijos del nodo en el campo children:

db.categories.insertMany( [
{ _id: "MongoDB", children: [] },
{ _id: "dbm", children: [] },
{ _id: "Databases", children: [ "MongoDB", "dbm" ] },
{ _id: "Languages", children: [] },
{ _id: "Programming", children: [ "Databases", "Languages" ] },
{ _id: "Books", children: [ "Programming" ] }
] )
  • La query para recuperar los hijos inmediatos de un nodo es rápida y sencilla:

    db.categories.findOne( { _id: "Databases" } ).children
  • Puedes crear un índice en el campo children para habilitar una búsqueda rápida por los nodos secundarios:

    db.categories.createIndex( { children: 1 } )
  • Puedes query un nodo en el campo children para encontrar su nodo padre, así como sus nodos hermanos:

    db.categories.find( { children: "MongoDB" } )

El patrón de Referencias de hijos proporciona una solución adecuada para el almacenamiento en árboles, siempre que no sean necesarias operaciones en subárboles. Este patrón también puede proporcionar una solución adecuada para almacenar grafos donde un nodo puede tener múltiples padres.

Volver

Referencias de los padres

En esta página