我的集合测试架构嵌套如下:

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){ ...

09-25 18:34