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
Ответы
Ответ 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)