Model Tree Structures with Parent References
Overview
A tree-alike data model structure in mongo storing references to “parent”nodes in the child nodes.
Pattern
The Parent Reference pattern stores each tree node in a document; in addition to the tree, the document stores the id of the node’s parent.
Consider the following hierarchy of categories:
The following example models the tree using Parent
Reference, storing the reference to the parent category in the field parent:
![](https://images2015.cnblogs.com/blog/817474/201510/817474-20151012101930522-1744553866.png)
Model Tree Structures with Child References
Overview
A tree-alike data model in mongo store references in the parent-nodes to children nodes.
Pattern
Consider the following hierarchy of categories:
The following example models the tree using Child References, storing the reference to the node’s children in the field children:
![](https://images2015.cnblogs.com/blog/817474/201510/817474-20151012101933069-57919381.png)
Model Tree Structures with an Array of Ancestors
Pattern
Consider the following hierarchy of categories:
The following examples models the tree using Array of Ancestors.
![](https://images2015.cnblogs.com/blog/817474/201510/817474-20151012101935132-1648718641.png)
Model Tree Structures with Materialized Paths
Pattern
Consider the following hierarchy of categories:
The following examples models the tree using Materialized Path, storing the path in the field path. The path string uses the comma , as a delimiter:
![](https://images2015.cnblogs.com/blog/817474/201510/817474-20151012101937272-1721823639.png)
Model Tree Structures with Nested Sets
Overview
A tree-alike data model optimize discovering subtrees at the expense of tree mutability.
Pattern
The Nested Sets pattern identifies each node in the tree as stops in a round-trip traverse of tree. The application visits each node in the tree twice. First during the initial trip, and second during the return trip. The Nested Sets pattern stores each tree each tree node in a document. In addition to the tree node, document stores the id of node’s parent, the node’s initial stop in the left field, and its return stop in the right end.
Consider the following hierarchy of categories:
The following example models the tree using Nested Sets:
![](https://images2015.cnblogs.com/blog/817474/201510/817474-20151012103047522-2024474721.png)