2012-01-13 19 views
19

Nodejs/mongoose kullanarak mongodb sonuçları almaya çalışıyorum.ISODate tanımlı değil

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

Hata: MongoDB bir parçasıdır ve sizin durumunuzda kullanılamaz ISODate is not defined

cevap

33

Not ISODate söyledi. Bunun yerine Date kullanıyor olmalısınız ve MongoDB sürücüleri (örneğin şu anda kullanmakta olduğunuz Mongoose ORM), sahne arkasında Date ve ISODate arasındaki tür dönüşümü ile ilgilenecektir.

+7

Olsa da değil. Bir ip oluşturur. –

+1

Cevap doğrudur. Bir örnek içeren daha ayrıntılı yanıt: http://stackoverflow.com/a/21286896/275183 –

+0

MongoDB, Tarih Örneğini ISODate ("ISOstring") olarak ayrıştırır ve depolar. Ancak, tekrar tarih dediğinizde, Tarih Örneği olarak iade edilecek, kendim test edene kadar inanmak istemedim. – WouldBeNerd