2015-10-03 78 views
2

如何填充參考文檔中子文檔,這是我的架構:如何填充的子文檔的參考(貓鼬)

var person = mongoose.Schema({ 
    name: { type: [String], index: true }, 
    career: [{ 
     position: { type: mongoose.Schema.Types.ObjectId, ref: 'Orgchart' } 
    }] 
}; 

var orgchart = mongoose.Schema({ 
     name: { type: [String], index: true }, 
}; 

我用這部分嘗試:

person.find({ _id: "12345" }).populate('orgchart').exec(function(err, data){ 
    res.send(data); 
}); 

我得到了錯誤Cannot read property 'name' of undefined當我打電話給玉模板

item.career._orgchart.name 

回答

3

您需要將字段的點符號路徑名傳遞給彈出烏拉特到populate電話:

person.find({ _id: "12345" }).populate('career.position').exec(function(err, data){ 
    res.send(data); 
}); 

不知道爲什麼你試圖從玉訪問此使用_orgchart,因爲它是一個將與引用orgchart文檔來填充career數組的元素在同一個position領域。

0

由於JohnnyHK先生

我用:

person.findOne({ _id: req.params.person }).populate('career.position career.grade').exec(function(err, data){ 
    res.send(data); 
}); 

我在循環使用的數據對item.position.name玉模板

感謝