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

MongoDB如何按小时维度获取日期时间字段的去重值

你可以通过MongoDB聚合框架实现按小时维度对日期字段去重的需求,具体方案如下:

方案1:MongoDB 5.0及以上版本(推荐)

使用内置的$dateTrunc运算符直接将日期截断到小时维度,再分组去重即可:

db.getCollection('cars').aggregate([
  // 按截断到小时的deparutre_date分组,天然实现去重
  {
    $group: {
      _id: {
        $dateTrunc: {
          date: "$deparutre_date",
          unit: "hour",
          timezone: "UTC"
        }
      }
    }
  },
  // 调整输出字段格式
  {
    $project: {
      _id: 0,
      hour_date: "$_id"
    }
  }
])

执行后输出的hour_date字段就是你需要的、按小时对齐的去重日期结果。

方案2:兼容低版本MongoDB

如果你的MongoDB版本低于5.0,可以先把日期格式化为小时对齐的字符串,再转回日期类型即可:

db.getCollection('cars').aggregate([
  {
    $group: {
      _id: {
        $dateFromString: {
          dateString: {
            $dateToString: {
              format: "%Y-%m-%dT%H:00:00.000Z",
              date: "$deparutre_date",
              timezone: "UTC"
            }
          }
        }
      }
    }
  },
  {
    $project: {
      _id: 0,
      hour_date: "$_id"
    }
  }
])

注意:如果你的日期需要按特定时区对齐,修改上面timezone参数的取值即可,默认使用UTC时区和你原查询的输出格式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:24:04