[MongoDB] 按时间分组统计(任意时间段)
('test-fa-test-07132-PK').aggregate(
{"$match":{
"stattime": {'$gte': ISODate("2018-03-11T00:00:00Z") ,'$lt':ISODate("2018-03-12T00:00:00Z")}
}},
{"$group": {
"_id": {
"$subtract": [
{ "$subtract": [ "$stattime", new Date("1970-01-01") ] },
{ "$mod": [
{ "$subtract": [ "$stattime", new Date("1970-01-01") ] },
1000 * 60 * 30 /*聚合时间段,30分钟*/
]}
]
},
"repstime": {'$avg': '$repstime'},
"total": {'$sum': '$total'},
//"timelist": { '$push': '$stattime'} /*查看聚合那些时间*/
}},
{"$project": {
"_id": 0,
"repstime": 1,
"total":1,
"timelist": 1,
'datetime': {'$add': [new Date(0), '$_id']}
}},
{"$sort": {
'datetime': 1
}}
)