假设我有一个包含作者文档的数组字段的书籍文档,我决定对数据进行规范化并创建" authors"采集。如何检索作者详细信息,如何将其添加到名为" authors"的新集合中,然后在图书集中的数组中引用它?
答案 0 :(得分:1)
您可以轻松创建作者集合,每个集合都会生成唯一ID,当您创建图书集时,您必须从其详细信息(如名字)中找到作者ID,并将其作为author_id放在图书集中
喜欢......
[authors: {
id:"54385-ab4f5-c356-bf38"
firstname: "Kristina",
lastname: "Chodorow",
}
]
就像在node.js
中一样domain.author.find{{author.firstname:"Kristina",author.lastname:"Chodorow"},function(err,data){
console.log(data.id)}}
并预订
{
title: "50 Tips and Tricks for MongoDB Developer",
published_date: ISODate("2011-05-06"),
pages: 68,
language: "English",
authors_id: 54385-ab4f5-c356-bf38
}
答案 1 :(得分:1)
MongoDB 通过嵌入式文档完成不同的方法,与传统的关系数据库相比,后者封装了外键的功能,通过它引用数据库中另一个表的数据。
根据上述描述作为解决方案,请尝试在mongodb中执行以下查询以提取特定作者的详细信息
db.collection.find({ authors: { $elemMatch: { firstname: "Kristina", lastname:'Chodorow' } } },
{ authors: { $elemMatch: { firstname: "Kristina", lastname:'Chodorow' } } }
)