具有父引用的模型树结构

概述

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

模式

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

考虑以下类别层次结构:

类别层次结构示例的树数据模型。

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

    参见

原文 - Model Tree Structures with Parent References

译者:景圣

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""