我对couchDB很新,甚至在阅读之后(最新的存档已删除)http://wiki.apache.org/couchdb/How_to_store_hierarchical_data(通过'存储每个节点的完整路径作为该节点文档中的属性')它还没有点击.
而不是使用维基中描述的完整路径模式,我希望将子项跟踪为UUID数组,父项作为单个UUID.我倾向于这种模式,所以我可以通过他们在儿童阵列中的位置维持孩子的顺序.
以下是沙发中的一些示例文档,存储桶可以包含存储桶和项目,项目只能包含其他项目.(UUID缩写为清晰):
{_id: 3944
name: "top level bucket with two items"
type: "bucket",
parent: null
children: [8989, 4839]
}
{_id: 8989
name: "second level item with no sub items"
type: "item"
parent: 3944
}
{
_id: 4839
name: "second level bucket with one item"
type: "bucket",
parent: 3944
children: [5694]
}
{
_id: 5694
name: "third level item (has one sub item)"
type: "item",
parent: 4839,
children: [5390]
}
{
_id: 5390
name: "fourth level item"
type: …Run Code Online (Sandbox Code Playgroud)