Docs 菜单

Docs 主页开发应用程序MongoDB Manual

使用父引用对树结构进行建模

在此页面上

  • 概述
  • 模式

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

父项引用模式将每个树节点存储在文档中;除了树节点之外,该文档还存储节点父项的 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

← 对树结构进行建模

在此页面上