在Aggregation.group.sum中,如果要判断某个字段的值是否存在,然后根据存在与否来进行加一或加零的操作,可以使用$cond操作符结合$gt操作符来实现。

假设我们有一个集合students,包含以下文档:

{ "_id": 1, "name": "John", "score": 80 }, { "_id": 2, "name": "Alice" }

我们想要根据score字段的存在与否,来对score进行累加操作。如果score存在,则加一,否则加零。

可以使用以下聚合管道操作实现:

db.students.aggregate([ { $group: { _id: null, totalScore: { $sum: { $cond: { if: { $gt: ["$score", null] }, then: 1, else: 0 } } } } } ])

这个聚合操作会返回一个名为totalScore的字段,该字段的值为score字段存在的文档数。

在上述例子中,totalScore的值为1,因为只有一个文档中的score字段存在。

希望以上解答能帮到你

Aggregationgroupsum中判断存在则加一否则加零

原文地址: https://www.cveoy.top/t/topic/hDy1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录