You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB聚合查询求和返回0,如何修正获取正确成功支付总额?

解决MongoDB聚合求和返回0的问题

你的聚合查询返回0的核心原因是嵌套字段引用格式错误:在$sum操作符中,引用嵌套字段时必须在字段路径前添加$符号,否则MongoDB会将字符串"requestPayload.amount"当作数值0处理,最终总和自然为0。

修正后的单个用户统计查询

移除多余的$and(MongoDB默认对多个查询条件做逻辑与),并修正字段引用格式:

db.paymentLogDetail.aggregate([
  {
    "$match": {
      "userName": "merch2@mail.com",
      "response.code": 200
    }
  },
  {
    "$group": {
      "_id": null,
      "total": { "$sum": "$requestPayload.amount" }
    }
  }
]);

支持任意用户名的扩展方案

场景1:动态统计指定单个用户

在应用代码中动态替换"merch2@mail.com"为目标用户名即可,查询结构保持不变。

场景2:统计所有用户各自的成功支付总和

将$group的_id设置为"$userName",按用户名分组求和:

db.paymentLogDetail.aggregate([
  {
    "$match": {
      "response.code": 200
    }
  },
  {
    "$group": {
      "_id": "$userName",
      "totalSuccessAmount": { "$sum": "$requestPayload.amount" }
    }
  }
]);

内容的提问来源于stack exchange,提问作者JPG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 05:36:20