如何在MongoDB中使用深度查询`find()`数据?

时间:2018-06-25 09:13:11

标签: mongodb mongodb-query

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
            }
        ]
    }
}

我需要获取其count > 0的记录,这意味着我想获取第一条记录并过滤掉第二条记录。我该如何实施?

我尝试过db.events.find({'details':{'detail_list':{'$in':[{'count':{ '$gt': 0 }}]}}}),但是它不起作用。我该如何运作?

2 个答案:

答案 0 :(得分:2)

这是基本的Dot notation语法:

db.events.find({"details.detail_list.count": {"$gt": 0}})

答案 1 :(得分:0)

在上述情况下不需要$ in,请使用正确的遍历路径以获得所需的结果

db.events.find({"details.detail_list.count":{"$gt": 0}})