MongoDB聚合阶段:在统计客户总余额基础上新增交易数量统计
解决MongoDB聚合中分组统计总金额及对应交易记录数的问题
没问题,你只需要在现有的$group聚合阶段里,新增一个字段来统计交易记录数量就可以了。具体来说,我们可以用$sum: 1来实现——每一条属于该客户的交易文档,都会给这个计数字段加1,最终得到的就是该客户对应的交易记录总数。
修改后的完整$group阶段代码如下:
{ $group: { "_id": "$customer._id", "totalBalance": { "$sum": "$transactions.amounts.balance" }, "transactionCount": { "$sum": 1 } } }
简单解释下新增的部分:
transactionCount:你可以自定义这个字段名,比如叫totalTransactions也行,只要语义清晰就好{ "$sum": 1 }:这个表达式的作用是,每处理一条属于当前分组(即同一个customer._id)的文档,就累加1,最终结果就是该客户的交易记录总数
这样运行之后,你就能同时得到每个客户的总余额totalBalance,以及对应的交易记录条数transactionCount啦。
内容的提问来源于stack exchange,提问作者Muirik
相关产品推荐
相关产品推荐

