Skip to content

Latest commit

 

History

History
47 lines (31 loc) · 1.95 KB

modelo-de-estructuras-de-arbol-con-referencias.md

File metadata and controls

47 lines (31 loc) · 1.95 KB

Modelo de estructuras de árbol con referencias

Descripción general

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

Patrón

El patrón Child References almacena cada nodo del árbol en un documento; además del nodo del árbol, el documento almacena en una matriz la (s) identificación (es) de los hijos del nodo.

Considere la siguiente jerarquía de categorías:

El siguiente ejemplo modela el árbol usando referencias secundarias, almacenando la referencia a los secundarios 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 childrenpara permitir una búsqueda rápida por los nodos secundarios:

    db.categories.createIndex( { children: 1 } )
    
  • Puede consultar un nodo en el childrencampo para encontrar su nodo principal y sus hermanos:

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

El patrón Child References proporciona una solución adecuada para el almacenamiento de árboles siempre que no sea necesario realizar operaciones en los subárboles. Este patrón también puede proporcionar una solución adecuada para almacenar gráficos donde un nodo puede tener varios padres.