Как я могу `найти ()` данные с глубоким запросом в MongoDB? - PullRequest
0 голосов
/ 25 июня 2018

Данные в 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 голосов
/ 25 июня 2018

$ in не требуется в вышеупомянутом случае, используйте правильный путь обхода, чтобы получить желаемый результат

db.events.find({"details.detail_list.count":{"$gt": 0}})
0 голосов
/ 25 июня 2018

Это базовое Точечная запись синтаксис:

db.events.find({"details.detail_list.count": {"$gt": 0}})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...