2015-06-26 54 views
2

我想在特定日期后检索所有文档。 我的数据库有日期 - DateAdded:"2014-12-17 10:03:46.000Z"mongodb中的日期比较

我写了下面的query

db.collection.find({DateAdded:{"$lte":new Date("2015-06-17 10:03:46.000Z")}}) 

但结果不取即使是日期高达2015-06-24记录的任何记录。

+1

您的日期字符串格式。您需要以IOSDate格式“保存/更新”以获取当前查询的结果。 – Vishwas

+0

仅限于日期格式。 – maggs

+2

尝试'“$ gte”:ISODate(“2015-06-17 10:03:46.0​​00Z”)' –

回答

6

您可以使用ISODate比较日期:

"$lte" : ISODate("2015-06-17T10:03:46Z") 

ISODate作品,因为这是你的日期格式

new Date() 

包装日期在ISODate帮手,但无法在您的查询中进行转换。

退房此链接了解更多信息:http://docs.mongodb.org/manual/core/shell-types/

0

您可以使用此:

db.collection.find({DateAdded:{"$lte":new Date("2017-11-01")}}) 

将您的日期格式转换成这样:

ISODate("2017-11-01T00:00:00Z") 
-1

确认日期在mongodb的类型是Date。 然后ISO日期转换应该由mongo自动工作。 例如

Task.find({ date: { $gt: "2018-01-30T16:08:53.758Z", $lte: "2018-02-01T02:08:53.770Z" }}) 

检查这个帖子出来stack question

0

使用ISODate

format: {'field': {$operator: ISODate(yyyy-MM-ddThh:mm:ss.msZ)}} 

example: db.getCollection('yourCollection').find({'sampleField': {$lte: ISODate('2015-06-17T10:03:46.000Z')}})