2016-08-29 224 views
0

有小麻煩。最近合併了從SQL到MongoDb的Db,並且所有日期字段(如SQL中的(createdAt,updatedAt),現在在MongoDb中都存儲爲String:"Mon Aug 23 2016 09:55:04 GMT-0700 (PDT)",所以問題是。我可以使用像$gte, $lt這樣的MongoDb查詢方法來獲取特定的數據嗎?或者我有任何其他方法來做到這一點,而不重新整理數據庫,並將數據字段更改爲MongoDb日期對象?MongoDb查詢日期如果日期存儲像字符串

+1

我知道你不想要,但正確的答案是重新修復/修復這些字段以使用MongoDB日期對象。否則,你將永遠與這個混亂的表現搏鬥。 – JohnnyHK

回答

1

您需要使用下面的語法來查詢datetime場專賣店爲string

db.mycollection.find({ 
    "timestamp" : {"$gte": new Date("2013-10-01T00:00:00.000Z")} 
}) 

db.mycollection.find({ 
    "timestamp" : {"$gte": ISODate("2013-10-01T00:00:00.000Z")} 
}) 

蒙戈外殼提供了各種方法來返回日期,無論是作爲 字符串或作爲日期對象:

  • Date()方法,以字符串形式返回當前日期。
  • new Date()構造函數,它使用ISODate()包裝器返回一個Date對象。
  • ISODate()構造函數,它使用ISODate()包裝器返回一個Date對象。