Model One-to-One 与嵌入式文档的关系

在本页面

概观

MongoDB 中的数据具有灵活的 schema。 集合不强制执行文献结构。影响 model 数据的方式的决策会影响 application performance 和数据库容量。有关 MongoDB 中数据建模的完整高级 level 概述,请参阅数据建模概念

本文档描述了一个数据 model,它使用嵌入式文档来描述连接数据之间的关系。

图案

考虑以下_maample maps 赞助人和地址关系。 example 说明了如果需要在另一个的 context 中查看一个数据实体,嵌入优于引用的优势。在patronaddress数据之间的 one-to-one 关系中,address属于patron

在规范化数据 model 中,address文档包含patron文档的 reference。

{
   _id: "joe",
   name: "Joe Bookreader"
}

{
   patron_id: "joe",
   street: "123 Fake Street",
   city: "Faketon",
   state: "MA",
   zip: "12345"
}

如果经常使用name信息检索address数据,那么通过引用,您的 application 需要发出多个查询来解析 reference。更好的数据 model 是将address数据嵌入patron数据中,如下面的文档所示:

{
   _id: "joe",
   name: "Joe Bookreader",
   address: {
              street: "123 Fake Street",
              city: "Faketon",
              state: "MA",
              zip: "12345"
            }
}

使用嵌入式数据 model,您的 application 可以使用一个查询检索完整的顾客信息。