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

MongoDB聚合查询匹配跨年月范围时如何排除无效数据避免重复统计

MongoDB跨年度范围查询调整方案

现有代码问题

你当前的$match逻辑存在范围溢出问题:仅通过$in匹配年份和月份的规则,会把2020年1月-8月符合月份要求的文档也纳入统计,刚好是你需要排除的范围。

修正后聚合语句

[
  {
    $match: {
      $or: [
        // 匹配2020年10-12月
        {
          "Calendar Year": 2020,
          "Month": { $in: ["Oct", "Nov", "Dec"] }
        },
        // 匹配2021年1-8月
        {
          "Calendar Year": 2021,
          "Month": { $in: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"] }
        }
      ]
    }
  },
  {
    $group: {
      // 若需要整个时间段的汇总结果,_id设为null即可匹配你给出的预期返回格式
      // 若需要按月份+站点分组统计,把_id替换为{ 'Month': '$Month', 'Facility': '$Facility' }即可
      _id: null,
      MGal_treated: { $sum: "$MGal Treated" },
      Cr_mass_treated: { $sum: "$Chrome (kg)" }
    }
  }
]

逻辑说明

调整后的匹配逻辑完全覆盖2020年10月到2021年8月的统计区间,完全排除了2020年1-9月、2021年9-12月的无效数据,不会出现重复统计问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:48:01