对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

使用文档引用建立一对多关系模型

本页描述的数据模型使用文档之间的引用来建立一对多关系。

以下示例映射了出版商和图书的关系。它说明了引用相对于嵌入在避免重复发布者信息方面的优势。

将出版商文档嵌入图书文档会重复出版商数据,如以下示例所示:

{ title: "MongoDB: The Definitive Guide", author: [ "Kristina Chodorow", "Mike Dirolf" ], published_date: ISODate("2010-09-24"), pages: 216, language: "English", publisher: { name: "O'Reilly Media", founded: 1980, location: "CA" }} { title: "50 Tips and Tricks for MongoDB Developer", author: "Kristina Chodorow", published_date: ISODate("2011-05-06"), pages: 68, language: "English", publisher: { name: "O'Reilly Media", founded: 1980, location: "CA" }}

为避免重复的出版商数据,请使用引用并将出版商信息保存在与图书集合不同的单独集合中。

关系的发展决定了引用的存储位置。如果每个出版商的图书数量较少且增长有限,请将图书引用存储在出版商文档中。如果每个出版商的图书数量无限制,则此数据模型将创建可变的增长数组,如以下示例所示:

{ name: "O'Reilly Media", founded: 1980, location: "CA", books: [123456789, 234567890, ...]} { _id: 123456789, title: "MongoDB: The Definitive Guide", author: [ "Kristina Chodorow", "Mike Dirolf" ], published_date: ISODate("2010-09-24"), pages: 216, language: "English"} { _id: 234567890, title: "50 Tips and Tricks for MongoDB Developer", author: "Kristina Chodorow", published_date: ISODate("2011-05-06"), pages: 68, language: "English"}

为避免出现可变且不断增长的数组,请将出版商的引用存储在图书文档中:

{ _id: "oreilly", name: "O'Reilly Media", founded: 1980, location: "CA"} { _id: 123456789, title: "MongoDB: The Definitive Guide", author: [ "Kristina Chodorow", "Mike Dirolf" ], published_date: ISODate("2010-09-24"), pages: 216, language: "English", publisher_id: "oreilly"} { _id: 234567890, title: "50 Tips and Tricks for MongoDB Developer", author: "Kristina Chodorow", published_date: ISODate("2011-05-06"), pages: 68, language: "English", publisher_id: "oreilly"}
给本页内容打分

在此页面上