Pregunta

Estoy tratando de obtener resultados de MongoDB usando NodeJS/Mongoose.

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

¿Fue útil?

Solución

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

Otros consejos

Simplemente puede usar de la siguiente manera para convertir las fechas en la cadena ISO:

GPSData.find({"createdAt" : { $gte : new Date(year,month,day,0,0,0).toISOString(), $lte:  new Date(year,month,day,23,59,59).toISOString() }}, function(err, data) {
  if(err)
    console.log(err); 
});

En mi caso, estaba convirtiendo una consulta con isodatos

let dateString = "2014-01-22T14:56:59.301Z";

$gte : ISODate(dateStr)

en node.js es

$gte : new Date(dateStr)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top