В rides — завершённые поездки такси в Екатеринбурге: водитель driver_id, время завершения finished_at (строка ISO в UTC) и стоимость fare_rub.
В приложении водителя под каждой поездкой — сумма за сутки на этот момент. Посчитайте day_total: сумму fare_rub всех поездок этого водителя за те же сутки UTC до текущей включительно. Сутки начинаются заново в 00:00 UTC.
Верните driver_id, finished_at, fare_rub, day_total, по driver_id, затем по finished_at. Двух поездок одного водителя с одним временем нет.
В работе: Нарастающие итоги: баланс по операциям, прогресс к цели дня, накопленная выручка.
MongoDB · MongoDB 8.0.20
Коллекции
rides — завершённая поездка
| Поле | Тип | Что значит |
|---|---|---|
driver_id | string | водитель |
finished_at | string | ISO 8601, UTC |
fare_rub | int | стоимость |
Пример: документы
rides
[
{
"fare_rub": 350,
"driver_id": "d-1042",
"finished_at": "2026-05-12T07:10:00Z"
},
{
"fare_rub": 1180,
"driver_id": "d-1042",
"finished_at": "2026-05-12T18:05:00Z"
},
{
"fare_rub": 620,
"driver_id": "d-1042",
"finished_at": "2026-05-12T09:40:00Z"
},
{
"fare_rub": 900,
"driver_id": "d-2210",
"finished_at": "2026-05-12T10:00:00Z"
}
]
Ожидаемый ответ
[
{
"fare_rub": 350,
"day_total": 350,
"driver_id": "d-1042",
"finished_at": "2026-05-12T07:10:00Z"
},
{
"fare_rub": 620,
"day_total": 970,
"driver_id": "d-1042",
"finished_at": "2026-05-12T09:40:00Z"
},
{
"fare_rub": 1180,
"day_total": 2150,
"driver_id": "d-1042",
"finished_at": "2026-05-12T18:05:00Z"
},
{
"fare_rub": 900,
"day_total": 900,
"driver_id": "d-2210",
"finished_at": "2026-05-12T10:00:00Z"
}
]
db.коллекция.aggregate([...]). Выполняем его в браузере движком агрегаций на 4 наборах документов: пример выше и скрытые — с пропущенными полями, null и пустыми коллекциями. Порядок документов важен, порядок полей внутри документа — нет. $out и $merge запрещены.
{"collection": "rides", "pipeline": [ … ]}
Источник: на данных такси: поездки водителей. Условие пересказано своими словами.
Посмотреть данные, проверить часть pipeline. На зачёт не влияет.
Здесь появится результат отправки.