2
我在这里遇到了挑战,我试图从另一个子文档中填充同一集合中的子文档。这是可能的吗?下面是我的示例模式Mongoose从另一个子文档填充子文档,其中两个子文档都是主文档的一部分
var chapter = new Schema({
title:String,
startPage:Number,
endPage:Number
});
var keyPoint = new Schema({
text:String,
mentionInChapter:[{
type: Schema.ObjectId,
ref: 'chapter'}]
});
var Book = new Schema({
title:String,
author:String,
chapters:[chapter],
keyPoints:[keypoint]
});
我在下面试过,它没有填充keyPoints数组中的chapterId。
Book.findById(ID).populate( '章')EXEC(函数(ERR,DOC){ 如果(ERR) 的console.log(DOC);! })。
有没有一种方法可以实现这一点,以便我检索的Book文档包含所有的细节?
谢谢阿尔乔姆。在上述解决方案中,您将章节和关键点作为单独的文档,而不是嵌入的文档。关键点会让我感觉到,因为这会增加规模。但是想知道如果我总是用Book来检索章节,我是否需要使它成为一个单独的文档集合? – Sham332
我已经更新了我的答案。尝试'Version 2' –
mongoose'populate'非常灵活,所以你可以尝试我的例子,并选择一个对你的情况最有用的。 –