如何实现MongoDB中基于15分钟时间窗口的分组聚合操作?

2026-05-20 13:050阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计866个文字,预计阅读时间需要4分钟。

如何实现MongoDB中基于15分钟时间窗口的分组聚合操作?

原文:

在时间序列分析中,将数据按固定时长(如 15 分钟)切片并计算统计指标(如平均速度)是常见需求。但直接对 ISODate 字段做数学运算(如 "$minute" 取模)容易出错——关键问题在于:仅用 "$minute" 会忽略年、月、日、小时等更高精度的时间维度,导致跨小时/跨天的数据被错误归入同一分组(例如 01:58 和 02:13 的分钟值分别为 58 和 13,58 % 15 = 13,二者会被误判为同属“13 分钟区间”,实则相差近 15 分钟且跨小时)。

✅ 正确做法是:以完整时间点为基准,先提取年、年中第几天($dayOfYear)、小时($hour),再将分钟映射到最近的 15 分钟起点

阅读全文
标签:GoMongoDB

本文共计866个文字,预计阅读时间需要4分钟。

如何实现MongoDB中基于15分钟时间窗口的分组聚合操作?

原文:

在时间序列分析中,将数据按固定时长(如 15 分钟)切片并计算统计指标(如平均速度)是常见需求。但直接对 ISODate 字段做数学运算(如 "$minute" 取模)容易出错——关键问题在于:仅用 "$minute" 会忽略年、月、日、小时等更高精度的时间维度,导致跨小时/跨天的数据被错误归入同一分组(例如 01:58 和 02:13 的分钟值分别为 58 和 13,58 % 15 = 13,二者会被误判为同属“13 分钟区间”,实则相差近 15 分钟且跨小时)。

✅ 正确做法是:以完整时间点为基准,先提取年、年中第几天($dayOfYear)、小时($hour),再将分钟映射到最近的 15 分钟起点

阅读全文
标签:GoMongoDB