我有一个具有一些嵌套属性的猫鼬模型。当我使用此模型查询文档时,将返回文档,但有时我只能访问两个级别的属性。其他嵌套对象作为一个对象返回,而其对象的属性我可以用点表示法访问,我无法弄清楚原因。
有谁知道可能导致这种情况的原因?
var mySchema = new Schema({
settings: {
some_settings: {
enabled: { type: Number, min: 0, max: 1, default: 0 },
interval: { type: Number, min: 0, default: 30 }, // seconds
start_diff: { type: Number, min: 0, default: 3600 } // seconds
},
other_settings: {
push_settings: { type: Number, min: 0, max: 1, default: 1, sparse: true }
}
}
});
当我在findOne
查询后返回并运行settings.other_settings.push_settings
时,即使值在数据库中,也会返回undefined。但是如果我console.log(settings.other_settings)
控制台打印出正确的值,但无法访问它们。就像mongoose没有意识到这个嵌套对象存在一样。
编辑:运行findOne后收到的文件会像这样打印到控制台:
{
_id: ObjectId('...'),
settings: {
some_settings: { enabled: 1, interval: 30, start_diff: 3600 },
other_settings: { push_settings: 1 }
}
}