文档菜单
文档首页
/
MongoDB 手册
/ / /

使用内嵌文档建模多对多关系

本页内容

  • 关于此任务
  • 示例
  • 内嵌文档模式
  • 了解更多

创建一个使用将连接数据嵌入到单个文档中,以描述连接数据之间的多对多关系。在单个文档中嵌入连接数据可以减少获取数据所需的读取操作次数。通常,您应该设计您的架构,以便您的应用程序在一次读取操作中接收所有必需的信息。例如,您可以使用嵌入式多对多模型来描述以下关系:

  • 学生与班级

  • 演员与电影

  • 医生与患者

以下示例架构包含有关一本书两本书及其作者的信息。根据您是否预计应用程序用户通过书籍或作者进行查询,您可以使用不同的方式表示关系。

如果您预计通过书籍进行查询的用户多于通过作者进行查询的用户,则示例架构是一个有效的选择。但是,如果您预计通过作者进行查询的查询较多,则将作者作为顶级信息,并将作者的书放在嵌入式字段中。

您可以使用多对多关系来描述书籍和作者。一本书可以有多个作者,一个作者可以写多本书。

应用程序需要在单个页面上显示书籍和作者对象的信息。为了允许应用程序通过单个查询检索所有必要的信息,在相应的书籍文档中嵌入作者信息

{
_id: "book001",
title: "Cell Biology",
authors: [
{
author_id: "author124",
name: "Ellie Smith"
},
{
author_id: "author381",
name: "John Palmer"
}
]
}
{
_id: "book002",
title: "Organic Chemistry",
authors: [
{
author_id: "author290",
name: "Jane James"
},
{
author_id: "author381",
name: "John Palmer"
}
]
}

返回

一对多引用