我的集合测试架构嵌套如下:
Test: {
name: String,
subField: {
name: String,
ref: {type: ObjectId, ref: "Test"}
}
}
我发现像:
dbs.Test.find({})exec().then(function(collection){ ...
它返回所有文档。然后,我访问一个具有名称但没有subField名称的字段。
var field = collection[0];
field.name // returns name
field.subField // console.log is an empty object
它在控制台中返回一个空对象。我假设它将为null / undefined。如果没有subField名称,field.subField实际返回的是什么?
最佳答案
您必须使用猫鼬的populate方法来获取引用的字段。
dbs.Test.find({}).populate('subField').exec().then(function(collection){ ...