2012-01-13 73 views
19

我試圖從使用nodejs/mongoose的mongodb中獲得結果。ISODate未定義

var dateStr = new Date(year,month,day,0,0,0); 
var nextDate = new Date(year,month,day,23,59,59); 

GPSData.find({"createdAt" : { $gte : new ISODate(dateStr), $lte: new ISODate(nextDate) }}, function(err, data) { 
    if(err) 
    console.log(err); 
}); 

錯誤:ISODate is not defined

回答

33

注意ISODate是MongoDB中的一部分,並且不可在你的情況。您應該使用Date,而MongoDB驅動程序(例如您當前使用的Mongoose ORM)將負責在場景後面的DateISODate之間的類型轉換。

+7

它雖然沒有。它創建一個字符串。 – 2013-06-15 17:44:28

+1

答案是正確的。包含一個例子的更詳細的答案:http://stackoverflow.com/a/21286896/275183 – 2014-02-27 13:46:52

+0

MongoDB將解析和存儲您的日期實例作爲ISODate(「ISOstring」)。但是當你再次調用這個日期時,它會作爲日期實例返回,我不想相信它,直到我自己對它進行測試。 – WouldBeNerd 2016-03-24 14:56:36