mongodb按时间段分组,并统计组内数据个数 - Tue, Sep 3, 2019
mongodb按时间段分组,并统计组内数据个数
1. 概述
mongodb统计数据每天,每周,每月,每年的数据量(求和,平均值,最大值,最小值)。
2. 表达式
使用mongodb的聚合操作进行统计。
$dateToString
是把时间戳转换为时间字符串的函数,可用通过format
控制时间格式。
如果是同一天的数据,转换之后的data
将会相同,然后再通过group
分组,将相同时间段的数据合并,就可以对时间段内数据进行统计。
2.1 $project
数据转换
{
"$project": {
"_id": 1,
"timestamp": 1,
"time": {
"$dateToString": {
"format": "%H:%M:%S:%L",
"date": {
"$toDate": {
"$multiply": [
"$timestamp",
1000
]
}
},
"timezone": "+08:00"
}
},
"date": {
"$dateToString": {
"format": "%Y-%m-%d",
"date": {
"$toDate": {
"$multiply": [
"$timestamp",
1000
]
}
},
"timezone": "+08:00"
}
}
}
}
转换之后数据
2.2 $group
分组并计算组内数据个数
{
"$group": {
"_id": "$date",
"count": {
"$sum": 1.0
}
}
}
分组之后数据