Подтвердить что ты не робот

ISODate не определен

Я пытаюсь получить результаты от mongodb, используя 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); 
});

Ошибка: ISODate is not defined

4b9b3361

Ответ 1

Обратите внимание, что ISODate является частью MongoDB и недоступен в вашем случае. Вместо этого вы должны использовать Date, а драйверы MongoDB (например, Mongoose ORM, который вы используете в данный момент) позаботятся о преобразовании типа между Date и ISODate за сценой.

Ответ 2

Вы можете просто использовать следующее для преобразования дат в строку 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); 
});

Ответ 3

В моем случае я конвертировал запрос с ISODates

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

$gte : ISODate(dateStr)

в node.js есть

$gte : new Date(dateStr)