Esta página describe un modelo de datos que describe una estructura en forma de árbol en los documentos de MongoDB almacenando referencias a los nodos "principales" en los nodos secundarios.
El patrón de referencias principales almacena cada nodo del árbol en un documento; además del nodo del árbol, el documento almacena la identificación del padre del nodo.
Considere la siguiente jerarquía de categorías:
El siguiente ejemplo modela el árbol usando 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 el nodo principal:
db.categories.find( { parent: "Databases" } )
- Puede consultar por el
parent
campo para encontrar sus nodos secundarios inmediatos:
db.categories.find( { parent: "Databases" } )
- Para recuperar subárboles, consulte
$graphLookup
.