当日期字段存储在ISO中时,按日期范围获取项目的项目 [英] Get items by date range for monogodump when date field is stored in ISO

查看:94
本文介绍了当日期字段存储在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆