2015-06-29 125 views
1

我目前面臨使用工具mongoexport導出問題。從MongoExport的unix時間戳查詢ISODate

不可能去到我的查詢中創建一個時間戳的日期:

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") 

我們可以看到對應日期millesconds 1434907890000時間戳在我的時區6/21/2015, 7:31:30 PM被轉換爲一些中世紀時代。

我在哪裏可能得到錯誤,以及如何在shell腳本中將時間戳傳遞給mongo查詢?

回答

4

禾,抱歉,我剛剛發現問題。

我測試

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