今天用mongodb查昨天某个collection产生的记录数量,在mysql里面可以用between..and..或者 >、>=、<、<=来查询指定的时间范围数据,但是mongodb有自己的语法。mongodb里比较,用 "$gt" 、"$gte"、 "$lt"、 "$lte"(分别对应">"、 ">=" 、"<" 、"<="),组合起来可以进行范围的查找。比如查昨天的,就可以用:
db.CollectionAAA.find({ "CreateTime" : { "$gte" : ISODate("-04-20T00:00:00Z"), "$lt" : ISODate("-04-21T00:00:00Z") } }).count()
注意,开始的时候日期使用 "-04-20" 和"-04-21",但是返回结果为空,应该日期字段需要指定格式吧,看了下存在库里的数据为ISODate类型,所以直接写成ISODate的方式,结果就正常了。
ps:
你好,我想请教一下,用户前端传递过来的值是例如 -10-27 12:12:12 那这样子的话,我后端需要怎么转成ISODate格式呢?因为ISODate 中间还有一个T 后面有一个Z 是不是我直接截取加上就可以呢?还是由什么更加好的方法呢?
直接这样就可以:
"ArtShowtime":{ "$gte":ISODate("-11-04 00:00:00"), "$lt":ISODate("-11-11 00:00:00") }
————————————————
原文链接:/difffate/article/details/70312894