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

如何在MongoDB中实现按日期及日期内productId字段分组统计

MongoDB按日期+productId分组统计实现方案

实现分为3个聚合阶段,具体操作如下:

完整聚合语句

db.collection.aggregate([
  // 阶段1:按「格式化后的日期+productId」分组,统计单产品单日出现次数
  {
    $group: {
      _id: {
        // 此处$createTime替换为你实际存储的日期字段名
        // 若日期字段本身已是YYYY-MM-DD格式字符串,直接写date: "$你的日期字段名"即可
        date: { $dateToString: { format: "%Y-%m-%d", date: "$createTime" } },
        productId: "$productId"
      },
      count: { $sum: 1 }
    }
  },
  // 阶段2:按日期二次分组,收集当日所有产品的统计结果
  {
    $group: {
      _id: "$_id.date",
      productList: { $push: { k: "$_id.productId", v: "$count" } }
    }
  },
  // 阶段3:转换格式为目标输出结构
  {
    $replaceRoot: {
      newRoot: {
        $mergeObjects: [
          { _id: "$_id" },
          { $arrayToObject: "$productList" }
        ]
      }
    }
  }
])

输出效果

和你预期的结构完全一致,示例输出:

[
  {
    "_id": "2018-03-04",
    "product1": 2,
    "product2": 2
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:45:03