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 principales a los nodos secundarios.

El patrón Referencias secundarias almacena cada nodo de árbol en un documento; además del nodo de árbol, el documento almacena en una matriz los identificadores de los hijos del nodo.

Considere la siguiente jerarquía de categorías:

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

El siguiente ejemplo modela el árbol utilizando referencias secundarias, 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 consulta para recuperar los hijos inmediatos de un nodo es rápida y sencilla:

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

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

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

El patrón Referencias de Hijos ofrece una solución adecuada para el almacenamiento de árboles, siempre que no se requieran operaciones en subárboles. Este patrón también puede ser una solución adecuada para almacenar grafos donde un nodo puede tener varios padres.

Volver

Referencias de los padres

En esta página