使用嵌入式文档建立一对多关系模型
创建一个数据模型,它将使用 嵌入式文档描述连接的数据之间的一对多关系。将连接的数据嵌入到单个文档可以减少获取数据所需的读取操作的数量。一般来说,在建立架构时,应确保应用程序可以在一次读取操作中收到其所需的所有信息。例如,您可以使用嵌入式一对多模型描述以下关系:
国家与主要城市的关系
作者与书籍的关系
学生上课的关系
例子
示例模式包含三个实体,其中 address one
和 address 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
对象的信息。为了让应用程序仅需通过一个查询便可检索到所有需要的信息,请将 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" } ] }