Mongo $ group, когда значение не равно нулю - PullRequest
0 голосов
/ 29 августа 2018

Использование mongoose 5 и MongoDb 4.

У меня есть запрос, который группирует документы на основе атрибута "$ SolutionID", и он берет первый документ в группе:

{ "$match": {
    "Title": { $regex: new RegExp( title ,'i') }
}},

{ "$group": {
    _id: "$SolutionID",
    doc: {$first: "$$ROOT"}
}},

{ "$sort": { "Title": -1 } }

Это прекрасно работает, но теперь я обнаружил, что некоторые данные, вводимые в систему, не имеют атрибута SolutionID, поэтому значение отсутствует. Это теперь нарушает желаемый результат запроса, так как для всех документов без указанного атрибута они сгруппированы в одну группу, а 1-й возвращается, где вместо этого мы должны вернуть все документы без атрибута.

Можно ли добавить к запросу, чтобы он был только $ group, когда есть attr, и если нет, группировка не применяется?

Уродливое решение - создать UUID для записи SolutionID при входе, но я бы не стал этого делать.

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