javascript - mongodb:带有 $in 运算符的 collection.find 不会返回任何内容

标签 javascript mongodb

我的 mongodb 查询出现问题。

目前我执行

collection.find({ "history.data": { "key": "paymentStatus", "value": { 
$in: ["fail1", "fail2", "fail3", "fail4", "fail5", "fail6", "fail7", 
"blocked"] } } })

但它没有返回我想要的对象,事实上它返回一个空数组。

该对象的结构如下:

{history: {time: ... , data: [ {key: "paymentStatus", value: "fail1"}, ... ] }}

这是嵌套 mongodb 查找查询的正确语法吗?

最佳答案

查询的正确语法如下:

collection.find({ 
  "history.data": { 
    $elemMatch: {
      "key":"paymentStatus", 
      "value": { $in: ["fail1","fail2","fail3","fail4","fail5","fail6","fail7", "blocked"]}
    }
  }
})

如果您只有一个而不是两个查询条件,您可以编写以下内容:

collection.find({ "history.data.key":"paymentStatus"})

但是在您的情况下,您有两个查询条件,因此您需要使用 $elemMatch。

关于javascript - mongodb:带有 $in 运算符的 collection.find 不会返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44553561/

相关文章:

javascript - NFC 读取器 Apache · Cordova

javascript - Owl Carousel 元素绝对位置

javascript - 如果 div 向下移动,则不会触发按钮单击

node.js - iOS Swift Parse-Server 用户登录认证

javascript - 添加到输入和克隆结果

PHP Mongo 查询不为空

php - 存储在 MongoDB 中后,Laravel 当前日期时间不相同

python - 错误 :document must be an instance of dict, bson.son.SON、bson.raw_bson.RawBSONDocument 或继承自 collections.MutableMapping 的类型

javascript - 使用 Mongoose 连接到 MongoDB

javascript - D3 将 HTML 附加到节点