如何在Sub Document中填充ref文档,这是我的架构:
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);
});
当我使用
调用jade模板时出现错误Cannot read property 'name' of undefined
item.career._orgchart.name
答案 0 :(得分:3)
您需要传递字段的点符号路径名以填充到populate
来电:
person.find({ _id: "12345" }).populate('career.position').exec(function(err, data){
res.send(data);
});
不确定您为什么要尝试使用来自Jade的_orgchart
来访问此内容,因为它是position
数组元素中相同的career
字段填充引用的orgchart
doc。
答案 1 :(得分:0)
感谢JohnnyHK先生
我用:
person.findOne({ _id: req.params.person }).populate('career.position career.grade').exec(function(err, data){
res.send(data);
});
我在jade模板的循环数据中使用了item.position.name
由于