从 MongoExport 中的 unix 时间戳查询 ISODate

querying ISODate from unix timestamp in MongoExport

我目前在使用工具 mongoexport 导出时遇到问题。

无法从我的查询中的时间戳创建日期:

db.getCollection('FooBarBarFoo').find({"actKey":"foobar","dt":{$gt:new Date('1434907890000')}})

这里是我做的一些测试:

mongo-aws-dev:SECONDARY> var testDate = new Date('1434907890000');
mongo-aws-dev:SECONDARY> testDate
ISODate("0NaN-NaN-NaNTNaN:NaN:NaNZ")
mongo-aws-dev:SECONDARY> var testDate = new ISODate('1434907890000');
mongo-aws-dev:SECONDARY> testDate
ISODate("1441-08-17T00:00:00Z")
mongo-aws-dev:SECONDARY> var testDate = new ISODate(1434907890000);
mongo-aws-dev:SECONDARY> testDate
ISODate("1441-08-17T00:00:00Z")

我们可以看到我所在时区的日期 6/21/2015, 7:31:30 PM 对应的毫秒时间戳 1434907890000 被转换为一些中世纪时间。

我可能在哪里出错以及如何在 shell 脚本中将时间戳传递给 mongo 查询?

抱歉,我刚找到问题

我测试了

  • Date(timestamp in string)
  • ISODate(timestamp in string)
  • ISODate(timestamp in number)

但是我没有测试最后一个...正确的:

  • Date(timestamp in number)

所以正确的查询是:

db.getCollection('FooBarBarFoo').find({"actKey":"foobar","dt":{$gt:new Date(1434907890000)}})