CNode

mongodb如何实现按日期分类

Yyukrain发布于12 年前最后回复12 年前4 回复11164 浏览0 收藏

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

查看回复

回复 (4)

A
alsotang#1·12 年前
  1. 用 mapreduce
  2. mongodb 只支持 UTC 时间
S
softice#2·12 年前

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

T
tulayang#3·12 年前

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

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

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

K
kenticny#4·12 年前

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

参与回复
登录后即可参与回复。登录