Docs Menu

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

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

  • 国から主要都市へ

  • 著者から書籍へ

  • 生徒からクラスへ

このスキーマの例えには 3 つのエンティティが含まれており、address oneaddress two は同じ patron に属しています。

// patron document
{
_id: "joe",
name: "Joe Bookreader"
}
// address one
{
street: "123 Fake Street",
city: "Faketon",
state: "MA",
zip: "12345"
}
// address two
{
street: "1 Some Other Street",
city: "Boston",
state: "MA",
zip: "12345"
}

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

{
"_id": "joe",
"name": "Joe Bookreader",
"addresses": [
{
"street": "123 Fake Street",
"city": "Faketon",
"state": "MA",
"zip": "12345"
},
{
"street": "1 Some Other Street",
"city": "Boston",
"state": "MA",
"zip": "12345"
}
]
}