我的 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/