1
我有一個模型A
機智這個領域:貓鼬深填充不工作的多個二級對象
var field = {
foo: String,
b: [{ type: Schema.Types.ObjectId, ref: 'B' }]
}
和型號B
這種精密組件這 -
A.find({_id:req.params.id})
.populate({ path: 'patient', model: Patient,
populate: {
path: 'b',
model: B
},
populate: {
path: 'c',
model: C
},
})
.exec(function (err, doc) {
res.send(doc);
})
- 它應該返回填充的第二級別,但它的確如此,但問題是它只有populate
函數聲明的最後path
,在這種情況下只填充了模型C
。但是,當您使用型號B
更改其位置時,將填充型號B
。
上面的查詢返回這樣的事:
[
{
"foo":"Bar",
"b": [
{
"c":"a32s1da4fas1a23s1da56s4c",
"d":{
"foo1":"Bar1",
"foo2":"Bar2",
"foo3":"Bar3"
}
},
{
"c":"a32s1da4fas1a23s1da56s4d",
"d":{
"foo1":"Bar1",
"foo2":"Bar2",
"foo3":"Bar3"
}
}
// so on ...
]
}
]
我期待這樣的事情:
[
{
"foo":"Bar",
"b": [
{
"c":{
"foo1":"Bar1",
"foo2":"Bar2",
"foo3":"Bar3"
},
"d":{
"foo1":"Bar1",
"foo2":"Bar2",
"foo3":"Bar3"
}
},
{
"c":{
"foo1":"Bar1",
"foo2":"Bar2",
"foo3":"Bar3"
},
"d":{
"foo1":"Bar1",
"foo2":"Bar2",
"foo3":"Bar3"
}
}
// so on ...
]
}
]
哦,上帝!謝謝Naeem!我沒有注意到這一點。 – CENT1PEDE
爲我節省了一些時間! http://mongoosejs.com/docs/populate.html#deep-populate – keithics
@keithics ...只是你沒有正確閱讀或回答問題 –