найти все элементы в массиве, которые соответствуют определенному значению - mongodb - PullRequest
0 голосов
/ 04 сентября 2018

MongoDB V: 3,6

У меня есть массив с 6 элементами, у каждого элемента есть 2 значения: fileName и count Я хочу получить все элементы в массиве с числом 0

Я пытался использовать этот код, но он возвращает только один элемент, а не все совпадающие элементы.

await User.findOne({email:email},
                   { ackFiles: { $elemMatch: { count: 0 } } });

это только вернуть это:

{ _id: 5b55d0fd9dc644051c801058,
  ackFiles: [ { fileName: 'terms_of_use_vad', count: 0 } ] }

вот так выглядит моя БД enter image description here

1 Ответ

0 голосов
/ 04 сентября 2018
db.getCollection('').aggregate([{"$match": {"email": ""}},
{"$group" : {"_id" : {"email": "$email"}}},        
{
            "$project": {
                "files": {
                    "$filter": {
                        "input": "$ackfiles",
                        "as": "file",
                        "cond": {
                            "$in": ["$$file.count", [0]]
                        }
                    }
                }
            }
        }

    ])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...