文档菜单
文档首页
/
MongoDB 手册
/ / /

使用父引用描述模型树结构

本页内容

  • 概述
  • 模式

本页描述了一种数据模型,通过存储子节点中对“父”节点的引用来描述MongoDB文档中的树形结构。引用到“父”节点。

父引用模式将每个树节点存储在一个文档中;除了树节点外,文档还存储了节点父节点的ID。

考虑以下分类层次结构

Tree data model for a sample hierarchy of categories.

以下示例使用父引用来建模树,在字段中存储对父分类的引用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.

返回

树结构

本页内容