Mongoose模型值作为string而不是对象返回

我有一个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 } } }