Mongodb: запрос на основе времени в формате ISODate
Предположим, что примеры документов в базе данных Mongodb следующие:
{ "date" : ISODate("2015-11-09T05:58:19.474Z") }
{ "date" : ISODate("2014-10-25T07:30:00.241Z") }
{ "date" : ISODate("2015-11-30T15:24:00.251Z") }
{ "date" : ISODate("2012-01-10T18:36:00.101Z") }
Ожидаемое:
{ "date" : ISODate("2015-11-09T05:58:19.474Z") }
{ "date" : ISODate("2014-10-25T07:30:00.241Z") }
Я заинтересован в поиске документов, чье время в поле «дата» находится между 04:00 и 08:00 независимо от дня, месяца и года. Косвенным запросом должен соответствовать любой «ГГГГ-ММ-ДДТ» в поле даты.
Мой подход заключается в том, чтобы запросить все документы в пределах предполагаемой продолжительности дат из узла, а затем для каждого документа, который соответствует запросу, сравнить поле даты «date» документа с «yyyy-MM-DDT» + «required_time» («YYYY- MM-DD копируется из "поля даты" каждого документа для сравнения путем преобразования в moment () и получения месяца, даты и года ") с помощью модуля moment.js.
Есть ли способ сделать запрос, чтобы напрямую получить те же результаты?
Примечание: я использую nodejs для подключения к mongodb