[英]Mongoose - find(): object inside search options is not working
我有一个看起来像这样的猫鼬模式:
var mySchema = new mongoose.Schema({
...
metadata: {
isDeleted: {
type: Boolean,
default: false
},
...
}
});
我想获取应用过滤器的mongodb数据库中的元素列表,所以我有以下对象:
var searchOptions = { metadata: { isDeleted: false } };
在执行查询之前,始终需要将该metadata.isDeleted
值设置为false
,与稍后将添加的其他参数分开:
var objQuery = myModel.find(searchOptions, '-metadata');
起初,我在架构中的metadata
对象之外有isDeleted
属性,并且
var searchOptions = { isDeleted: false };
曾经完美地工作。 但这是因为我决定在我的metadata
对象中使用isDeleted
,它不起作用并且无法弄清楚为什么......
考虑到您在架构列表中使用省略号, metadata
属性下的属性比isDeleted
多,这似乎很可能。 所以你的对象应该是:
var searchOptions = { "metadata.isDeleted": false } };
这样做的原因是,否则查询正在寻找具有“完全”和“仅” metadata
键下命名的属性的文档:
var searchOptions = { metadata: { isDeleted: false } };
如果不是这种情况,那么当然没有匹配项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.