Overview
Esta página describe un modelo de datos que describe una estructura similar a un árbol en documentos de MongoDB almacenando referencias a los nodos “padre” en los nodos hijos.
Patrón
El patrón de Referencias parentales almacena cada nodo del árbol en un documento; además del nodo del árbol, el documento almacena el ID del nodo padre.
Considera la siguiente jerarquía de categorías:
El siguiente ejemplo modela el árbol utilizando Referencias Parentales, almacenando la referencia a la categoría padre 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 query para recuperar el nodo superior es rápida y sencilla:
db.categories.findOne( { _id: "MongoDB" } ).parent Puede crear un índice en el campo
parentpara habilitar la búsqueda rápida por el nodo padre:db.categories.createIndex( { parent: 1 } ) Puedes query por el campo
parentpara encontrar sus nodos hijos inmediatos:db.categories.find( { parent: "Databases" } ) Para recuperar subárboles, consulte
$graphLookup.