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/

问问题的妙用

记得看《你的灯亮着吗?》这本书时就感觉通过提问的方式比陈述、祈使效果都好很多。原书说的是这么一个场景,就是说日内瓦湖景区的上山隧道。进隧道通常都需要开大灯,可出隧道时司机们往往忘记关大灯,而搞得游完景区后车上的电已经耗尽,只得拖车或让警察来帮助发动。后来就出了几个版本的提示语:1. **请关灯...… Continue reading

时间管理中的断舍离

Published on May 20, 2018

科學の上網的便捷方法

Published on February 03, 2018