Мангуст — почему дата приведения не удалась?

#node.js #mongodb #mongoose

#node.js #mongodb #мангуст

Вопрос:

Я хочу отфильтровать значения из коллекций с диапазоном в 2 даты:

 const filterPattern = {
  createdAt: {
    'amp;gte': 2020-10-09T14:18:07.240Z,
    'amp;lte': 2020-12-09T14:26:49.544Z
  }
};

CollectionName.find(filterPattern);
 

Но выдает ошибку:

 CastError: Cast to date failed for value "{ 'amp;gte': 2020-10-09T, 'amp;lte': 2020-12-09T14:26:49.544Z }" at path "createdAt" for...
 

Оба значения ‘amp;gte’ и ‘amp; lte’, которые я создал с помощью new Date(), и они возвращают true после instanceof Date .

Что там не так?

Ответ №1:

Вы должны использовать $ вместо amp; и установить соответствующие значения:

 const filterPattern = {
  createdAt: {
     $gte: "2020-10-09T14:18:07.240Z",
     $lte: "2020-12-09T14:26:49.544Z"
  }
};