Docs Menu
Docs Home
/
MongoDB マニュアル
/ / /

親参照を持つモデルツリー構造

項目一覧

  • Overview
  • パターン

このページでは、子ノードに「親」ノードへの参照を保存することで、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を参照してください。

戻る

ツリー構造