DB ref在以下情况下正在工作:
Element.
findOne({unit: unit_id,).
populate('unit').
exec(function(err, element) {
console.log(element)
}
会显示
{
"unit": {
"id": "10251179680282633",
"__v": 0,
},
"_id": "50b92eec29921b2531000003",
"__v": 0,
"created_at": "2012-11-30T22:10:52.513Z"
}
但是,如果我创建一个新单位并将我的单位放入我的元素并保存,
unit = new Unit();
element = new Element()
element.unit = unit;
当我这样做时:
console.log(element)
它返回:
{
"unit": "50b9377d29921b2531000004",
"_id": "50b9377d29921b2531000005",
"created_at": "2012-11-30T22:47:25.361Z"
}
这不是我所期望的,因为我希望将单位视为对象而不是ID。
任何提示?
答案 0 :(得分:1)
这是预期的
在console.log(element)
示例中,element
包含对ObjectID的引用
根据{{1}}文档中存储的ID,Mongoose populate
能够从其自己的集合中获取unit
。
此页面更详细地解释了这一点 http://mongoosejs.com/docs/populate.html