group by hour in mongodb按小时聚集

Reading time ~1 minute

mongodb使用起来着实灰常蛋疼, 难怪都喜欢使用Hive、Shark。而且语法也各种怪异。

如下实现在st表中将基于timestamp(存的是s而不是ms)的列按小时聚集count:

db.st.aggregate(
   [{'$match':{'type': "weibo"}},
    {'$group': {
        '_id': {'$subtract': ['$timestamp', {'$mod':'$timestamp', 3600]}]},
        'y': {'$sum': 1}}},
    {'$project': {'x': '$_id', 'y': '$y', '_id': 0}},
    {'$sort': {'x': 1}}])

等价于如下sql 伪代码

select (timestamp-timestamp%3600) as x,count(*) as y from st
where type='weibo'
group by x 
order by x asc

作作Technical笔记,以备后用。发现自己作的Technical笔记太少,倒了不少车轮子! 做笔记一则加深自己理解,一则前车以鉴来者。

Original post: http://blog.josephjctang.com/2013-11/mongodb-notes/

重操堆文这旧业之时间日志分析

写作的习惯,已经断了许久了。上一篇已经是去年的文章了,也是做的[时间日志分析]({% post_url 2019-02-23-time-log-analysis %}) 。 正好做时间总结,也把写作捡起来吧。# 低效时间分析用 [RescueTime](https://www.rescueti...… Continue reading

个人近期时间日志分析

Published on February 23, 2019

问问题的妙用

Published on May 27, 2018