[Mongo] 按时间分组统计(group时间格式化)
2014-09-22 19:10
916 查看
分组的key可以使用原有的字段,也可以使用一个function来格式化日期。
统计代码:
这种方法会有时区的问题,new date() 会安照0时区来做转化,如果我们存储的时间为东八区,那么统计结果就会不对。
这种情况下就需要使用"$dayOfMonth"等方法直接提取。(http://docs.mongodb.org/manual/reference/operator/aggregation/dayOfMonth/)
结合aggregate来使用 有时间后面会写下,最近在看
统计结果:
参考: http://stackoverflow.com/questions/5168904/group-by-dates-in-mongodb
本文出自 “orangleliu笔记本” 博客,请务必保留此出处 http://blog.csdn.net/orangleliu/article/details/39480359
/* 0 */ { "_id" : ObjectId("541fcc51c6c36038bc6b81cd"), "url" : "http://wifi21.com/", "addtime" : ISODate("2014-08-19T00:15:02Z") } /* 1 */ { "_id" : ObjectId("541fcc51c6c36038bc6b81ce"), "url" : "http://meiwen.me/src/index.html", "addtime" : ISODate("2014-08-19T00:15:07Z") } ...
统计代码:
db.msds_accessrecord.group({ keyf : function(doc){ var date = new Date(doc.addtime); var dateKey = ""+date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate(); return {'day':dateKey}; //33 }, initial : {"count":0}, reduce : function Reduce(doc, out) { if(doc.url){ out.count +=1; } } });
这种方法会有时区的问题,new date() 会安照0时区来做转化,如果我们存储的时间为东八区,那么统计结果就会不对。
这种情况下就需要使用"$dayOfMonth"等方法直接提取。(http://docs.mongodb.org/manual/reference/operator/aggregation/dayOfMonth/)
结合aggregate来使用 有时间后面会写下,最近在看
统计结果:
[ { "day" : "2014-8-19", "count" : 41 }, { "day" : "2014-8-22", "count" : 28 }, ... ]
参考: http://stackoverflow.com/questions/5168904/group-by-dates-in-mongodb
本文出自 “orangleliu笔记本” 博客,请务必保留此出处 http://blog.csdn.net/orangleliu/article/details/39480359
相关文章推荐
- [Mongo]分组统计时间 aggregate,group,distinct
- MongoVUE Group分组统计查询
- PHP数据库统计时间戳按天分组输出数据
- oracle 按照时间分组统计求和
- Oracle按不同时间分组统计
- mysql date_format 按不同时间单位进行分组统计
- group by & count分组统计数量
- oracle sum case when group by,同时使用,实现分组统计
- mysql 分组查询以及显示各个分组所有的温度和时间要用GROUP_CONCAT
- Oracle按不同时间分组统计
- Mysql 根据时间戳按年月日分组统计
- group分组之后要求统计count问题
- sql查询技巧,按时间分段进行分组,每半小时一组统计组内记录数量
- 按时间分组统计的SQL语句
- 【转】Mysql 根据时间戳按年月日分组统计
- PHP实现数据库统计时间戳按天分组输出数据的方法
- Mysql 根据时间戳按年月日分组统计
- Oracle数据库按时间进行分组统计数据的方法
- C# List GroupBy 分组统计
- Mysql 根据时间戳按年月日分组统计