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

如何在MongoDB中获取倒数第二个整点时间?

实现MongoDB中获取倒数第二个整点的时间段

你需要生成包含start(倒数第二个整点)和end(当前整点)的period对象,核心是先将当前时间截断到小时,再通过时间偏移得到目标时间段。你的现有代码仅提取了小时数值,没有生成完整的ISO日期格式,以下是完整实现方案:

完整聚合管道代码

{
  $project: {
    period: {
      // 获取当前整点时间作为end
      end: {
        $dateTrunc: {
          date: "$$NOW",
          unit: "hour"
        }
      },
      // 将当前整点减去1小时,得到倒数第二个整点作为start
      start: {
        $subtract: [
          {
            $dateTrunc: {
              date: "$$NOW",
              unit: "hour"
            }
          },
          3600000 // 1小时对应的毫秒数
        ]
      }
    }
  }
}

代码说明

  • $dateTrunc:将$$NOW(当前时间)截断到hour单位,直接得到当前整点时间(比如15:46会被处理为15:00),作为period.end。
  • $subtract:将当前整点时间减去3600000毫秒(即1小时),得到倒数第二个整点时间,作为period.start。

示例输出

当当前时间为2022-11-03T15:46:00.000时,输出结果为:

{
  "period": {
    "start": "2022-11-03T14:00:00.000Z",
    "end": "2022-11-03T15:00:00.000Z"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:55:27