如何在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 }, {

MongoDB中的数据如下所示:

第一条记录:

{
    "_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}})