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

MongoDB带distinct条件的$sum聚合:按唯一赛事统计战队各地图总胜场

修正方案

你当前的聚合逻辑直接按战队+地图分组后累加win值,同一场赛事下的多名玩家数据会被重复计数,需要先按【战队+地图+赛事ID】维度去重,确保每场赛事仅统计一次胜场值,再聚合计算总胜场。

修正后的聚合查询如下:

let teamWinsOnMap = await PlayerStats.aggregate([
  // 第一轮分组:按战队+地图+赛事ID合并数据,单场赛事仅保留一条记录
  {
    $group: {
      _id: {
        team: "$team",
        map: "$map",
        match: "$match"
      },
      win: { $first: "$win" },
      team: { $first: "$team" },
      map: { $first: "$map" }
    }
  },
  // 第二轮分组:按战队+地图维度聚合,统计总胜场
  {
    $group: {
      _id: { team: "$team", map: "$map" },
      match: { $addToSet: "$_id.match" },
      team: { $first: "$team" },
      map: { $first: "$map" },
      win: { $sum: "$win" }
    }
  }
])

运行后你案例里的de_dust2地图胜场会从错误的2修正为正确的1,匹配实际参赛场次。

内容的提问来源于stack exchange,提问作者mustafa.shykh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:51:00