如何在MongoDB中通过深度查询找到数据?
MongoDB中的数据如下所示: 第一条记录:如何在MongoDB中通过深度查询找到数据?,mongodb,mongodb-query,Mongodb,Mongodb Query,MongoDB中的数据如下所示: 第一条记录: { "_id" : ObjectId("5b309244e138235684843b5d"), "branch_id": 3, "group": 2, "rule_id": 60001, "details": { "detail_list": [ { "count": 36072 }, {
{
"_id" : ObjectId("5b309244e138235684843b5d"),
"branch_id": 3,
"group": 2,
"rule_id": 60001,
"details": {
"detail_list": [
{
"count": 36072
},
{
"count": 12035
}
]
}
}
第二条记录:
{
"_id" : ObjectId("5b309244e134567684843b5d"),
"branch_id": 9,
"group": 9,
"rule_id": 60001,
"details": {
"detail_list": [
{
"count": 0
}
]
}
}
我需要获取计数>0的记录,这意味着我要获取第一条记录并过滤掉第二条记录。我如何实现这一点
我尝试了db.events.find({'details':{'details_list':{'in':[{'count':{'gt':0}}]}})
,但它不起作用。如何使其工作?它的基本语法:
在上述情况下不需要$in,请使用正确的遍历路径来获得所需的结果
db.events.find({"details.detail_list.count":{"$gt": 0}})
正如他所提到的,detail_列表是一个计数数组,如果第一个计数为零,而第二个大于零,那么您的查询工作正常吗?@MohammadRaheem问得好。让我试一试。是的,它返回的文档中至少有一个子文档计数>0:
db.events.find({"details.detail_list.count":{"$gt": 0}})