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

如何使用Mongoose按state分组并汇总revenue总和?

按State分组求和Revenue的Mongoose查询

你可以通过Mongoose的聚合管道实现按state分组并求和revenue的需求,核心使用$group和$project两个聚合阶段:

const Record = mongoose.model('Record', RecordSchema);

// 执行聚合查询
Record.aggregate([
  // 第一步:按state分组,求和revenue
  {
    $group: {
      _id: '$state', // 分组依据:state字段的值
      revenue: { $sum: '$revenue' } // 对每组的revenue求和
    }
  },
  // 第二步:调整输出格式,将_id重命名为state
  {
    $project: {
      _id: 0, // 隐藏默认的_id字段
      state: '$_id', // 将分组用的_id(即state值)赋值给state字段
      revenue: 1 // 保留求和后的revenue字段
    }
  }
])
.then(result => {
  console.log(result);
  // 输出示例:[{state: 'PH', revenue: 550}, {state: 'LH', revenue: 1450}]
})
.catch(err => {
  console.error('查询出错:', err);
});

关键阶段说明

  • $group:聚合的核心步骤,指定分组字段并执行聚合计算。$sum操作符会遍历分组内的所有文档,累加revenue字段的值。
  • $project:用于重塑输出文档的结构,把分组生成的_id字段重命名为state,同时隐藏不需要的_id,让最终结果完全匹配你想要的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:03:11