手动将嵌入式文档转换为MongoDB中的引用

时间:2015-11-21 04:33:31

标签: mongodb

假设我有一个包含作者文档的数组字段的书籍文档,我决定对数据进行规范化并创建" authors"采集。如何检索作者详细信息,如何将其添加到名为" authors"的新集合中,然后在图书集中的数组中引用它?

2 个答案:

答案 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' } } }
)