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

埋め込みドキュメントによる多対多の関係のモデル化

項目一覧

  • このタスクについて
  • 埋め込みドキュメント パターン
  • 詳細

埋め込みドキュメントを使用するデータモデルを作成して、接続データ間の多対多の関係を記述する 接続されたデータを単一のドキュメントに埋め込むと、データを取得するために必要な読み取り操作の数を減らすことができます。 一般に、アプリケーションが 1 回の読み取り操作で必要な情報をすべて受け取れるようにスキーマを構成します。 たとえば、埋め込まれた多対多モデルを使用して、次の関係を記述できます。

  • 生徒からクラスへ

  • 監督から映画へ

  • 担当者からクライアントへ

次のサンプル スキーマには、 book oneおよびbook twoとその著者に関する情報が含まれています。 アプリケーション ユーザーが書籍別にクエリされるか、著者がクエリを実行するかに応じて、関係を異なる方法で表すことができます。

著者よりも書籍をクエリするユーザーが多い場合は、サンプル スキーマが効果的な選択です。 ただし、著者によるクエリを増やす場合は、著者を最上位情報にし、著者の書籍を埋め込みフィールドに配置します。

書籍と著者を説明するには、多対多の関係を使用できます。 書籍には複数の著者がいて、著者は複数の書籍を書くことができます。

アプリケーションでは、書籍と著者オブジェクトの情報を単一のページに表示する必要があります。 アプリケーションが 1 回のクエリで必要な情報をすべて取得できるようにするには、対応する書籍ドキュメント内に著者情報を埋め込みます。

{
_id: "book001",
title: "Cell Biology",
authors: [
{
author_id: "author124",
name: "Ellie Smith"
},
{
author_id: "author381",
name: "John Palmer"
}
]
}
{
_id: "book002",
title: "Organic Chemistry",
authors: [
{
author_id: "author290",
name: "Jane James"
},
{
author_id: "author381",
name: "John Palmer"
}
]
}

戻る

1 対多の参照