mongoDB中的聚合查询问题
我在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) 我尝试了以下方法,但通
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)- 第一组,如果
为空,则检查条件,然后计数0idServiceRequested
- 第二个
按空值和平均值$组
计数
考虑到还有一个日期条件,我按照您所说的那样尝试了(注意编辑的问题),但它仍然提供了与以前相同的输出。如果不在您的文档中显示日期字段和值,我将情不自禁。
db.collection.aggregate([
{
$group: {
_id: "$idCustomer",
count: {
$sum: {
$cond: [{ $eq: ["$idServicerequired", null] }, 0, 1]
}
}
}
},
{
$group: {
_id: null,
count: { $avg: "$count" }
}
}
])