Получение временных записей на основе часа и идентификатора драйвера

#mongodb #mongoose #nosql

#mongodb #mongoose #nosql

Вопрос:

Я создаю базу данных mongo, в которой хранится массив объектов следующего вида

{
_id: 5ca37dc35b55092ab2b0980e,
driverID: 'cjttwclbr00ui0714y2dodxe2',
createdAt: 2019-04-02T15:20:35.021Z,
updatedAt: 2019-04-02T15:20:35.021Z, __v: 0
}

Я хочу отфильтровать те результаты, которые принадлежат конкретному водителю, в зависимости от дня и часа

например: я хочу получить все записи, созданные на 2-м часу сегодняшнего дня, которые принадлежат определенному водителю

Как я могу написать запрос поиска или метод агрегирования на основе этого сценария?

Я могу получить время дня, используя

 const hour = new Date().getHours();
  

Комментарии:

1. не могли бы вы, пожалуйста, поделиться полной схемой коллекции.?

Ответ №1:

Чтобы получить все данные драйвера за определенный час

     var date = new Date(); // for today
    date.setHours(n,0,0,0); // n is the hour

    var endHour = new Date();
    endHour.setHours(n 1,0,0,0);

    var query = {
    driverID:driverId,
    createdAt :{ $gte:date,$lt:endHour}
    }

    db.collection.find(query);