Domanda

Sto cercando di ottenere risultati da 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); 
});

Errore: ISODate is not defined

È stato utile?

Soluzione

Notare che ISODate fa parte di MongoDB e non è disponibile nel tuo caso. Dovresti usare Date Invece e i driver MongoDB (ad esempio l'orm mongoose che stai attualmente utilizzando) si occuperanno della conversione del tipo tra Date e ISODate dietro le quinte.

Altri suggerimenti

Puoi semplicemente usare come segue per convertire le date nella stringa 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); 
});

Nel mio caso, stavo convertendo una domanda con isodati

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

$gte : ISODate(dateStr)

in node.js è

$gte : new Date(dateStr)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top