#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);