繁体   English   中英

Mongoose - find(): 搜索选项中的对象不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM