有效的数据模型可满足您的应用程序需求。文档结构的关键考虑因素是嵌入或使用引用的决定 。
使用MongoDB,您可以将相关数据嵌入单个结构或文档中。这些模式通常称为“非规范化”模型,并利用MongoDB的丰富文档。考虑下图:
嵌入式数据模型允许应用程序将相关信息存储在同一数据库记录中。结果,应用程序可能需要发出较少的查询和更新来完成常见的操作。
通常,在以下情况下使用嵌入式数据模型:
通常,嵌入可为读取操作提供更好的性能,以及在单个数据库操作中请求和检索相关数据的能力。嵌入式数据模型使在单个原子写入操作中更新相关数据成为可能。
要访问嵌入文档中的数据,请使用点符号 “进入”嵌入文档。有关访问数组和嵌入式文档中的数据的更多示例,请参见在数组中查询数据和在嵌入式文档中查询数据。
规范化的数据模型使用文档之间的引用来描述关系。
通常,使用规范化的数据模型:
为了加入集合,MongoDB提供了聚合阶段:
$lookup
(从MongoDB 3.2开始可用)$graphLookup
(从MongoDB 3.4开始可用)MongoDB还提供了引用以跨集合联接数据。
有关规范化数据模型的示例,请参阅 带有文档参考的模型一对多关系。
有关各种树模型的示例,请参见 模型树结构。
有关使用MongoDB进行数据建模的更多信息,请下载《 MongoDB应用程序现代化指南》。
下载内容包括以下资源: