尽管它
$date是MongoDB Extended
JSON的一部分,但这是您默认使用的,
mongoexport我认为您不能真正将其用作查询的一部分。
如果尝试使用
$date类似以下的精确搜索:
db.foo.find({dt: {"$date": "2012-01-01T15:00:00.000Z"}})你会得到错误:
error: { "$err" : "invalid operator: $date", "pre" : 10068 }试试这个:
db.mycollection.find({ "dt" : {"$gte": new Date("2013-10-01T00:00:00.000Z")}})或(在@user3805045之后发表评论):
db.mycollection.find({ "dt" : {"$gte": ISODate("2013-10-01T00:00:00.000Z")}})ISODate可能还需要比较没有时间的日期(@MattMolnar指出)。
根据mongo Shell中的数据类型,两者应等效:
mongo shell提供了多种返回日期的方法,这些方法可以是字符串,也可以是Date对象:
- Date()方法,以字符串形式返回当前日期。
- 新的Date()构造函数,该构造函数使用ISODate()包装器返回Date对象。
- ISODate()构造函数,该构造函数使用ISODate()包装器返回Date对象。
并且using
ISODate应该仍然返回Date对象。
{"$date": "ISO-8601 string"}当需要严格的JSON表示形式时可以使用。Hadoop连接器就是一个可能的例子。


