2012-01-13 24 views
19

Próbuję uzyskać wyniki z mongodb za pomocą nodejs/mangusta.ISODate nie jest zdefiniowany

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

Błąd: ISODate is not defined

Odpowiedz

33

Zauważ, że ISODate jest częścią MongoDB i nie jest dostępny w Twoim przypadku. Zamiast tego powinieneś używać Date, a sterowniki MongoDB (np. ORM Mongoose, którego obecnie używasz) zajmą się konwersją typów między Date i ISODate za sceną.

+7

Nie zmienia się. Tworzy ciąg znaków. –

+1

Odpowiedź jest poprawna. Bardziej szczegółowa odpowiedź zawierająca przykład: http://stackoverflow.com/a/21286896/275183 –

+0

MongoDB będzie analizować i przechowywać Twoją instancję Data jako ISODate ("String ISO"). Ale kiedy zadzwonisz na wspomnianą datę ponownie, zostanie zwrócony jako Data Instance, nie chciałem w to uwierzyć, dopóki sam go nie przetestowałem. – WouldBeNerd

Powiązane problemy