说我有如下的馆藏/文件:
问题集:
{
_id: ObjectId("0000"),
title: "test question",
survey: ObjectId("1234") //abbreviated for question assume this is a legit object id
}
调查收集:
{
_id: ObjectId("1234"),
title: "survey title!",
user: ObjectId("5678")
}
用户集合:
{
_id: ObjectId("5678"),
Name: "Abe"
}
有没有办法让我打电话:
questions.findOne({_id: "0000"}).populate("survey.user")
获取用户信息以及问题?我知道我可以填充question
的直接父母,但我很好奇是否可以为祖父母做。
答案 0 :(得分:1)
你需要分两步完成;首先填充survey
,然后使用对Model.populate
的单独调用填充survey.user
:
questions.findOne({_id: '0000'})
.populate('survey')
.exec(function(err, question) {
questions.populate(
question,
{ path: 'survey.user', model: 'User'},
function(err, question) {...});
});
答案 1 :(得分:0)
我猜最好是嵌套在顶部,并将其作为对象
Court.
findOne({ name: 'Val' }).
populate({
path: 'events',
populate: { path: 'authorId' }
});