我有一个模式storySchema
,其中有chapters -> posts
不是外国文件,还有posts -> author
是外国文件。当我populate({ path: "chapters", populate: { path: "posts", populate: {path: "author"}}})
时,我回到“未定义”状态。
我不确定如何将populate
用于非外部的子文档。
const storySchema = new Schema({
chapters: [{
title: String,
description: String,
posts: [{
author: {
type: Schema.Types.ObjectId,
ref: "User"
},
description: String
}]
}],
});
models.Story.findOne({ _id: req.params.story_id }).populate({ path: "chapters", populate: { path: "posts", populate: { path: "author" } } })
.then(story => {})...
我希望填写一个文档,其中包含所需的author
字段,而不是未定义的文档。
答案 0 :(得分:0)
尝试使用dot notation访问子文件。
Story.findOne({ _id: req.params.story_id })
.populate('chapters.posts.author")
.then(story => {})
.catch(err => err);