mongodb如何实现按日期分类
发布于 11 年前 作者 yukrain 10568 次浏览 最后一次编辑是 8 年前

比如一个博客系统文章有日期属性 数据库里是的日期是 ISODate(“2013-12-30T16:00:00.000Z”) 想按照日期统计每天的文章数量. 请教一下问题: 1.应该用什么方法来实现 2.怎样解决数据库里时差的问题(我要统计当天的文章数,得按照本地时间来统计.)

4 回复
  1. 用 mapreduce
  2. mongodb 只支持 UTC 时间

发文章的时候,就备个字段去 $inc,就别单独统计了。 比如: stat 表: {_id:20140101,article:5,reply:10,…} 以后查的时候,多省事,直接用_id 就行了。完全不用计算。

你应该多加个数值字段, 放置本数据加入时距离默认起始时间的毫秒数,或者到比如2014年1月1日距离的毫秒数。

这样只需要加个索引,比较今天距离参考时间的毫秒数。 虽然增加了磁盘容量,不过查询性能肯定是大幅提升的。

范围内容筛选,最好尽量使用数值,不要用字符串或者其他数据类型。

日期字段可以使用$gt $lt去比较的,至于时差的话,mongodb里面是UTC时间,和北京时间差八小时

回到顶部