Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Modela estructuras de árbol con referencias a hijos

Esta página describe un modelo de datos que describe una estructura similar a un árbol en documentos de 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 para padres

En esta página