mongodb如何实现按日期分类
比如一个博客系统文章有日期属性 数据库里是的日期是 ISODate(“2013-12-30T16:00:00.000Z”) 想按照日期统计每天的文章数量. 请教一下问题: 1.应该用什么方法来实现 2.怎样解决数据库里时差的问题(我要统计当天的文章数,得按照本地时间来统计.)
4 回复
- 用 mapreduce
- mongodb 只支持 UTC 时间
发文章的时候,就备个字段去 $inc,就别单独统计了。 比如: stat 表: {_id:20140101,article:5,reply:10,…} 以后查的时候,多省事,直接用_id 就行了。完全不用计算。
你应该多加个数值字段, 放置本数据加入时距离默认起始时间的毫秒数,或者到比如2014年1月1日距离的毫秒数。
这样只需要加个索引,比较今天距离参考时间的毫秒数。 虽然增加了磁盘容量,不过查询性能肯定是大幅提升的。
范围内容筛选,最好尽量使用数值,不要用字符串或者其他数据类型。
日期字段可以使用$gt $lt去比较的,至于时差的话,mongodb里面是UTC时间,和北京时间差八小时