Mongodb-未知的顶级运算符:$ elemMatch" [英] Mongodb - unknown top level operator: $elemMatch"
本文介绍了Mongodb-未知的顶级运算符:$ elemMatch"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个收藏,其中包含一些文档,
I have a collection which contains some documents as follows,
{
"transactionId": 3432423,
"reviews": [
{
"fromUser": {
"userId": "5236aa1acd6e"
},
"toUser": {
"userId": "0ec8db9544cc"
},
"rating": 4.3,
"comment": ""
},
{
"toUser": {
"userId": "5236aa1acd6e",
"email": "yourlife@gmail.com",
"firstName": "your",
"lastName": "life"
},
"fromUser": {
"userId": "0ec8db9544cc",
"email": "mylife@gmail.com",
"firstName": "my",
"lastName": "life"
},
"rating": 4.3,
"comment": ""
}
]
}
我需要检查文档中是否存在子文档审阅.我已经使用了这个查询,
i need to check if subdocument reviews present inside the document. i have used this query,
db.getCollection('_testCollection').find({ "$elemMatch": { "reviews": { "$exists": false } }})
它抛出一个错误,说,
"errmsg" : "unknown top level operator: $elemMatch",
推荐答案
$elemMatch
或$exists
都不是您要用来确定reviews
是否为空数组的东西.
Neither $elemMatch
or $exists
is what you want to use to determine if reviews
is an empty array.
相反,可以将其与[]
进行比较:
Instead, either compare against []
:
db.test.find({reviews: []})
或使用$size
运算符:
db.test.find({reviews: {$size: 0}})
这篇关于Mongodb-未知的顶级运算符:$ elemMatch"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文