Mongoose模型值作为字符串而不是对象返回

时间:2014-12-09 06:59:02

标签: node.js mongodb mongoose

我有一个具有一些嵌套属性的猫鼬模型。当我使用此模型查询文档时,将返回文档,但有时我只能访问两个级别的属性。其他嵌套对象作为一个对象返回,而其对象的属性我可以用点表示法访问,我无法弄清楚原因。

有谁知道可能导致这种情况的原因?

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 }
    }
}

0 个答案:

没有答案
相关问题