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

如何在Mongoose聚合查询中统计欠款客户数量(不修改匹配条件)

你可以在聚合的$group阶段新增统计逻辑,用$cond结合$sum来实现需求,完全不需要修改原有的$match条件。

完整的聚合查询示例如下:

db.clients.aggregate([
  // 保持原有的$match条件不变,确保匹配指定用户的所有客户
  { $match: { userId: ObjectId("你的目标用户ID") } },
  {
    $group: {
      _id: null, // 确保返回单个汇总对象
      totalSalesValue: { $sum: "$clientSalesValue" }, // 原有的总销售额计算
      totalDebts: { $sum: "$currentDebt" }, // 原有的总欠款计算
      // 新增的统计currentDebt>0的客户数字段
      debtClientCount: {
        $sum: {
          $cond: {
            if: { $gt: ["$currentDebt", 0] },
            then: 1,
            else: 0
          }
        }
      }
    }
  }
])

逻辑说明

  • $gt操作符判断当前客户的currentDebt是否大于0;
  • $cond根据判断结果返回1(符合条件)或0(不符合);
  • $sum将这些1和0累加,最终得到的就是currentDebt>0的客户总数量;
  • 原有的$match条件完全保留,确保统计范围始终是指定用户的所有客户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:05:22