Защита на устройствах присылает событие на каждое срабатывание. Один заражённый ноутбук может прислать сотню событий одного семейства за день, поэтому отчёт аналитиков считает не события, а устройства.
В detections — device_id, семейство family и время ts строкой ISO 8601 в UTC. Нужна неделя с понедельника 12 по воскресенье 18 октября 2026 года включительно.
Верните три семейства с наибольшим числом разных устройств: family и devices, по убыванию devices, при равенстве — по family по алфавиту.
В работе: Отчёты по угрозам, охват рекламной кампании, число пострадавших клиентов от инцидента.
MongoDB · MongoDB 8.0.20
Коллекции
detections — одно срабатывание — один документ
| Поле | Тип | Что значит |
|---|---|---|
device_id | string | устройство |
family | string | семейство угрозы |
ts | string | ISO 8601, UTC |
Пример: документы
detections
[
{
"device_id": "pc-1",
"family": "Trojan.Agent",
"ts": "2026-10-12T08:00:00Z"
},
{
"device_id": "pc-1",
"family": "Trojan.Agent",
"ts": "2026-10-12T08:05:00Z"
},
{
"device_id": "pc-1",
"family": "Trojan.Agent",
"ts": "2026-10-13T10:00:00Z"
},
{
"device_id": "pc-1",
"family": "Trojan.Agent",
"ts": "2026-10-14T11:00:00Z"
},
{
"device_id": "pc-2",
"family": "Miner.Linux",
"ts": "2026-10-13T12:00:00Z"
},
{
"device_id": "pc-3",
"family": "Miner.Linux",
"ts": "2026-10-15T09:00:00Z"
},
{
"device_id": "pc-4",
"family": "Miner.Linux",
"ts": "2026-10-16T09:00:00Z"
},
{
"device_id": "pc-2",
"family": "Phish.Html",
"ts": "2026-10-14T07:00:00Z"
},
{
"device_id": "pc-5",
"family": "Phish.Html",
"ts": "2026-10-17T07:00:00Z"
},
{
"device_id": "pc-6",
"family": "Worm.Usb",
"ts": "2026-10-11T23:59:59Z"
},
{
"device_id": "pc-7",
"family": "Worm.Usb",
"ts": "2026-10-11T22:00:00Z"
},
{
"device_id": "pc-8",
"family": "Worm.Usb",
"ts": "2026-10-11T21:00:00Z"
}
]
Ожидаемый ответ
[
{
"devices": 3,
"family": "Miner.Linux"
},
{
"devices": 2,
"family": "Phish.Html"
},
{
"devices": 1,
"family": "Trojan.Agent"
}
]
db.коллекция.aggregate([...]). Выполняем его в браузере движком агрегаций на 5 наборах документов: пример выше и скрытые — с пропущенными полями, null и пустыми коллекциями. Порядок документов важен, порядок полей внутри документа — нет. $out и $merge запрещены.
{"collection": "detections", "pipeline": [ … ]}
Источник: наша задача на данных Лаборатории Касперского: срабатывания защиты на устройствах. Условие пересказано своими словами.
Посмотреть данные, проверить часть pipeline. На зачёт не влияет.
Здесь появится результат отправки.