4

我目前在使用 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")

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

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

4

1 回答 1

8

哇,抱歉,我才发现问题。

我测试过

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

于 2015-06-29T09:45:31.293 回答