mongoDB中的聚合查询问题

mongoDB中的聚合查询问题,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我在mongodb中有以下收藏: IDcustomer. idServicerequired. ... 001. 13 002. 15 002. 19 002. 10 003. null 由此,我想得到每个客户所需的平均服务数量(在这种情况下,输出应该是(1+3+0)/3=1.34) 我尝试了以下方法,但通

我在mongodb中有以下收藏:

IDcustomer.     idServicerequired.       ...
001.                  13
002.                  15
002.                  19
002.                  10
003.                  null
由此,我想得到每个客户所需的平均服务数量(在这种情况下,输出应该是(1+3+0)/3=1.34)

我尝试了以下方法,但通过这种方式,对于每个不需要服务的客户,它被计算为1,就像他需要一次服务一样,因此平均值高于预期值(在这种情况下,它将是(1+3+1)/3=1.67)

  • 第一组,如果
    idServiceRequested
    为空,则检查条件,然后计数0
  • 第二个
    $组
    按空值和平均值
    计数

考虑到还有一个日期条件,我按照您所说的那样尝试了(注意编辑的问题),但它仍然提供了与以前相同的输出。如果不在您的文档中显示日期字段和值,我将情不自禁。
db.collection.aggregate([
  {
    $group: {
      _id: "$idCustomer",
      count: {
        $sum: {
          $cond: [{ $eq: ["$idServicerequired", null] }, 0, 1]
        }
      }
    }
  },
  {
    $group: {
      _id: null,
      count: { $avg: "$count" }
    }
  }
])