小编jon*_*asx的帖子

MongoDB按日期间隔分组

我有一个带有datetime字段和计数的集合:

{
    _id: null,
    datetime: new Date(),
    count: 1234
}
Run Code Online (Sandbox Code Playgroud)

我想以24小时,7天和30天的间隔获得计数总和.结果必须如下:

{"sum": 100, "interval": "day"},
{"sum": 700, "interval": "week"},
{"sum": 3000, "interval": "month"}
Run Code Online (Sandbox Code Playgroud)

编辑:

更抽象:我需要多个条件的组结果(在这种情况下 - 多个时间间隔)

MySQL示例:

SELECT 
    IF (time>CURRENT_TIMESTAMP() - INTERVAL 24 HOUR, 1, 0) last_day,
    IF (time>CURRENT_TIMESTAMP() - INTERVAL 168 HOUR, 1, 0) last_week,
    IF (time>CURRENT_TIMESTAMP() - INTERVAL 720 HOUR, 1, 0) last_month,
    SUM(count) count
FROM table
GROUP BY    last_day,
            last_week,
            last_month
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

3
推荐指数
2
解决办法
7537
查看次数