当日期字段存储在ISO中时,按日期范围获取项目的项目 [英] Get items by date range for monogodump when date field is stored in ISO
问题描述
我有一个要在某个日期范围内转储的收藏集.我有一个查询适用于所有行,并且也可以与$ date一起使用:1058715(数字),但是它永远不会输出我猜测的任何内容,因为它与该条件中的任何行都不匹配.
I have a collection I am trying to dump out within a date range. I've got a query working for ALL rows, and also have it working with $date: 1058715 (numerical) but that never outputs anything I'm guessing because it doesn't match any rows in that conditional.
我在monog中的日期存储为ISODATE(yadayada),所以我仍然可以使用$ date :(数值)进行查询吗?
My dates in monog are stored as ISODATE(yadayada), so can I still query with $date: (numerical value)?
我在外壳中创建了一个日期,然后使用该数字值获取了它的值.
I created a date in the shell and got its value then using that numerical value.
这里是我的工作查询,该查询不输出任何行
Heres my working query , which outputs no rows
sudo bin/mongodump --db myDB --collection myColl -q '{"reading_date" : { "$gte" : { $date:1341230400000}}}' --out - > dump/myDB /will.bson
但是我认为我需要
sudo bin/mongodump --db myDB --collection myColl -q '{"reading_date" : { "$gte" : new Date(2012,05,01)}}' --out - > dump/myDB /will.bson
推荐答案
如果要存储日期,可以将其与mongo shell中的javascript日期进行比较,如下所示:
If you are storing a date, you can compare it to javascript date in the mongo shell like this:
db.coll.find({mydate:{$gt:new Date(2012,0,1)}})
请注意,在js月份中,数字是从零开始的,因此以上表示的是2012年1月1日.
Note that in js months are zero-based so the above represents January 1st 2012.
由于您需要将其传递给mongodump,因此请改用以下语法:
Since you need to pass this to mongodump, use this syntax instead:
mongodump -q '{mydate:{$gte:Date(1341230400000)}}'
参考: http://www.mongodb.org/display/DOCS/Mongo + Extended + JSON
这篇关于当日期字段存储在ISO中时,按日期范围获取项目的项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!