猫鼬:数据库中是否设置了字段?
Mongoose: Is field set in the database?
我有一个 Mongoose 模式,其中 属性 包含一个字符串数组。类似于:
var schema = mongoose.schema({
myProp: [String]
})
mongoose.model('MyModel', schema);
现在,当我加载 MyModel
文档并检查它的 .myProp
属性 时,我得到一个空数组(我认为这要归功于 Mongoose 的转换) ,即使 Mongo 中的文档没有 myProp
字段。
如何从我的 javascript 中区分 mongo 中没有 myProp
字段的文档,以及具有值为空数组的 myProp
字段,鉴于 doc.myProp
returns 在这两种情况下都是空数组?
您总是可以在查询时使用 lean() 选项,returns 正是 Mongo 中的内容,而无需创建 Mongoose 模型的实例。
Model.find().lean().exec(function (err, docs) {
// docs should be identical to your mongo collection
});
我有一个 Mongoose 模式,其中 属性 包含一个字符串数组。类似于:
var schema = mongoose.schema({
myProp: [String]
})
mongoose.model('MyModel', schema);
现在,当我加载 MyModel
文档并检查它的 .myProp
属性 时,我得到一个空数组(我认为这要归功于 Mongoose 的转换) ,即使 Mongo 中的文档没有 myProp
字段。
如何从我的 javascript 中区分 mongo 中没有 myProp
字段的文档,以及具有值为空数组的 myProp
字段,鉴于 doc.myProp
returns 在这两种情况下都是空数组?
您总是可以在查询时使用 lean() 选项,returns 正是 Mongo 中的内容,而无需创建 Mongoose 模型的实例。
Model.find().lean().exec(function (err, docs) {
// docs should be identical to your mongo collection
});