TypeORM возвращает пустой массив при запросе MongoDB даты

#mongodb #typeorm

#mongodb #typeorm

Вопрос:

У меня есть следующий запрос, который должен получить объекты, у которых есть дата госпитализации в будущем, из моего MongoDB:

         return await this.hospitalRepository.find({
        where: {
            hospitalizedUntil: MoreThanDate(new Date(), EDateType.Datetime)
        }
    });
  

Где больше данных:

 const MoreThanDate = (date: Date, type: EDateType) => MoreThan(format(date, type));
  

Однако этот запрос не возвращает никаких объектов, даже несмотря на то, что в Mongo есть объект, в котором hospitalizedUntil находится в будущем:
(Текущая дата и время: 2020-08-28T17:11:09.888Z)

 [
  Hospital {
    _id: 5f492efd50e81f63dc60c5d3,
    discordId: 'xxxxxxxxxxxxxxxxx',
    hospitalizedUntil: 2020-08-28T18:51:17.627Z,
    reason: 'Was robbed',
    hospitalizedBy: 'xxxxxxxxxxxxxxxxx'
  }
]
  

Я также пытался использовать оператор Between:

     where: {
        hospitalizedUntil: Between(new Date(), new Date('9999-12-31'))
    }
  

Но это также вернуло пустой массив.

Ответ №1:

Возникла та же проблема, и ее решили с помощью собственного запроса MongoDB.

 hospitalizedUntil: { $gte: format(new Date(), EDateType.Datetime) }
  

Я думаю, что эти функции просто не работают на MongoDB (хотя я не нашел ничего, связанного с этой проблемой)