所述的祖先阵列图案存储文档中的每个树节点; 除树节点外,文档还以数组的形式存储该节点的祖先或路径的ID。
考虑以下类别层次结构:
以下示例使用Array of Ancestors对树进行建模。除了该ancestors
字段外,这些文档还在该字段中存储对直接父类别的引用parent
:
检索节点的祖先或路径的查询是快速而直接的:
您可以在该字段上创建索引,ancestors
以启用祖先节点的快速搜索:
您可以按字段查询ancestors
以查找其所有后代:
的祖先的阵列图案提供了一种快速和有效的解决方案通过创建祖先字段中的元素的索引来查找一个节点的后代和祖先。这使先祖数组成为处理子树的好选择。
“ 先祖数组”模式比“ 物化路径”模式稍慢, 但更易于使用。