从MongoExport中的unix时间戳查询ISODate

Tho*_*duc 1 timestamp date mongodb mongoexport

我目前正面临使用mongoexport工具导出的问题.

不可能从我的查询中的时间戳创建日期:

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

这里我做了一些测试:

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")
Run Code Online (Sandbox Code Playgroud)

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

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

Tho*_*duc 5

哇,对不起,我刚刚发现问题.

我测试过了

  • 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)}})