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

如何在Mongoose聚合中按brand_id分组并筛选订单总额超1000$的品牌

解决方案

你需要在聚合管道中做两步调整:

  1. 在$group阶段计算每个品牌的订单总额
  2. 添加$match阶段筛选总额超过1000美元的品牌

假设你的订单金额字段名为amount(如果实际字段名不同,替换成对应名称即可),修改后的代码如下:

const data = await Sales.aggregate([
    {
      $group: {
        _id: '$brand_id',
        records: { $push: "$$ROOT" },
        totalAmount: { $sum: '$amount' } // 计算每个品牌的订单总额
      }
    },
    {
      $match: { totalAmount: { $gt: 1000 } } // 筛选总额超过1000美元的品牌
    }
]);

关键说明:

  • $sum: '$amount':遍历每个分组内的文档,累加指定金额字段的值,得到该品牌的订单总额
  • $match阶段必须放在$group之后:因为要先完成分组和总额计算,再对分组后的结果进行筛选。如果反过来,会变成筛选单个订单金额超1000的记录,不符合你要的品牌总额筛选逻辑

如果你的订单金额字段不是amount,比如是orderTotal,只需要把$sum里的'$amount'替换成实际字段名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:12:01