Использование 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
при входе, но я бы не стал этого делать.