2012-01-13 25 views
19

Estoy tratando de obtener resultados de mongodb usando nodejs/mongoose.ISODate no está definido

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

error: ISODate is not defined

Respuesta

33

Tenga en cuenta que ISODate es una parte de MongoDB y no está disponible en su caso. Debería utilizar Date en su lugar y los controladores MongoDB (por ejemplo, el ORM Mongoose que está utilizando actualmente) se encargarán de la conversión de tipo entre Date y ISODate detrás de la escena.

+7

No obstante. Crea una cadena. –

+1

La respuesta es correcta. Una respuesta más detallada que contiene un ejemplo: http://stackoverflow.com/a/21286896/275183 –

+0

MongoDB analizará y almacenará su instancia de fecha como ISODate ("ISOstring"). Pero cuando vuelva a llamar a dicha fecha, se devolverá como una instancia de fecha, no quería creerlo hasta que lo haya probado yo mismo. – WouldBeNerd