Docs Menu
Docs Home
/ /
Estructuras de árbol

Modelar estructuras de árbol con referencias a padres

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

El patrón Referencias parentales almacena cada nodo de árbol en un documento; además del nodo de árbol, el documento almacena el ID del nodo parental 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 principales, almacenando la referencia a la categoría principal en el campo parent:

db.categories.insertMany( [
{ _id: "MongoDB", parent: "Databases" },
{ _id: "dbm", parent: "Databases" },
{ _id: "Databases", parent: "Programming" },
{ _id: "Languages", parent: "Programming" },
{ _id: "Programming", parent: "Books" },
{ _id: "Books", parent: null }
] )
  • La consulta para recuperar el padre de un nodo es rápida y sencilla:

    db.categories.findOne( { _id: "MongoDB" } ).parent
  • Puede crear un índice en el campo parent para permitir una búsqueda rápida por parte del nodo principal:

    db.categories.createIndex( { parent: 1 } )
  • Puede consultar el campo parent para encontrar sus nodos secundarios inmediatos:

    db.categories.find( { parent: "Databases" } )
  • Para recuperar subárboles,$graphLookup consulte.

Volver

Estructuras de árbol

En esta página