值不为null时的Mongo $ group

时间:2018-08-29 15:33:58

标签: mongodb mongoose

使用猫鼬5和MongoDb 4。

我有一个查询,该查询根据attr“ $ SolutionID”将文档分组,并采用该组中的第一个文档:

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

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

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

这很好用,但是现在我发现输入到系统中的某些数据没有attr SolutionID,因此该值不存在。现在,对于所有没有所述attr的文档,它们都将打破期望的查询结果,将它们分为一个组,并返回1st,而应该返回所有没有attr的文档。

是否可以添加到查询中,以便仅在attr存在时才将$ group分配给查询,否则,则不应用任何分组?

一个丑陋的解决方法是在进入时为SolutionID生成一个UUID,但我宁愿不必这样做。

0 个答案:

没有答案