进入MongoDB中文手册(4.2版本)目录
1 概述
此页面描述了一种数据模型,该数据模型是将对“父”节点的引用存储在子节点中的树形结构的文档。
2 模式
父引用模式存储文档中的每个树节点。除了树节点之外,文档还存储该节点的父节点的ID。
考虑以下类别层次结构:
以下示例使用“ 父引用”对树进行建模,并将对父类别的引用存储在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 }
] )
- 检索节点父级的查询快速而直接:
db.categories.findOne( { _id: "MongoDB" } ).parent
- 您可以在字段上创建parent索引从而启用父节点的快速搜索:
db.categories.createIndex( { parent: 1 } )
- 您可以按parent字段查询来找到其直接子节点:
db.categories.find( { parent: "Databases" } )
- 要检索子树,请参见$graphLookup。