如何填充其他子对象中存在的子文档

时间:2019-04-10 17:38:21

标签: mongoose populate

我有一个模式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字段,而不是未定义的文档。

1 个答案:

答案 0 :(得分:0)

尝试使用dot notation访问子文件。

Story.findOne({ _id: req.params.story_id })
   .populate('chapters.posts.author")
   .then(story => {})
   .catch(err => err);