Я пытаюсь сделать что-то, что должно быть довольно простым.Агрегатный конвейер позволяет проходить документы последовательно по этапам.Например, я могу отфильтровать некоторые документы и передать нужные документы на следующий этап.Это можно сделать с помощью $ match.Затем я хочу взять оставшиеся документы и сгруппировать их по полю, чтобы проверить наличие дубликатов.Но у меня есть серьезные проблемы с этим.Вот что я пробовал:
db.my_fields.aggregate(
{ '$match' : { related_code_id: { "$in" : [ BSON::ObjectId('5cddd0143ed1495e5c000008'),BSON::ObjectId('5cddd0143ed1495e5c000010')] } } },
{ '$group' : { _id: { 'field' : '$field', 'field_type_id' : '$field_type_id' }, count: { '$sum' : 1} } },
{'$match' : { count: {'$gt' : 1} } }
)
Запрос работает нормально, за исключением первого $ match.Внутри оператора $ in я получаю эту ошибку:
2019-05-17T18:47:56.602-0400 E QUERY [js] SyntaxError: missing ] after element list @(shell):2:95
Он жаловался на эту часть прямо здесь:
BSON::ObjectId('5cddd0143ed1495e5c000008'),BSON::ObjectId('5cddd0143ed1495e5c000010')
Как мне решить эту проблему и достичь своей цели:заставить этот базовый запрос работать?