埋め込みドキュメントによる 1 対多の関係のモデル化
埋め込みドキュメントを使用して、接続されたデータ間の 1 対多の関係を記述するデータモデルを作成します。接続データを 1 つのドキュメントに埋め込むと、データを取得するために必要な読み取り操作の回数を減らすことができます。一般に、アプリケーションが 1 回の読み取り操作で必要な情報をすべて受け取れるようにスキーマを構成します。たとえば、埋め込まれた 1 対多モデルを使用して、次の関係を記述できます。
国から主要都市へ
著者から書籍へ
生徒からクラスへ
例
この例のスキーマには、 address one
と address two
が同じ patron
に属する 3 つのエンティティが含まれています。
// 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 つのページに表示する必要があります。アプリケーションが 1 回のクエリで必要な情報をすべて取得できるようにするには、address one
と address 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" } ] }