如何在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
相关产品推荐
相关产品推荐

