Этот вопрос проверяет знание механизма агрегации в MongoDB для обработки и анализа данных.
Агрегирующая структура в MongoDB — это мощный инструмент для обработки данных внутри коллекции. Она работает через "конвейер" (pipeline), где данные проходят через несколько этапов, таких как фильтрация, группировка, сортировка, и преобразование, чтобы получить сложные результаты.
Что такое агрегирующая структура?
Это набор операций, которые позволяют обрабатывать и трансформировать данные.
Работает по принципу "конвейера" (pipeline), где данные проходят через последовательные этапы.
Основные этапы конвейера:
$match:
Фильтрует документы на основе условий.
{ $match: { status: "active" } }$group:
Группирует документы по заданным полям и вычисляет агрегаты.
{ $group: { _id: "$status", total: { $sum: 1 } } }$sort:
Сортирует результаты.
{ $sort: { total: -1 } }$project:
Выбирает и изменяет структуру данных.
{ $project: { name: 1, status: 1 } }Когда использовать агрегацию:
Для анализа больших данных (например, вычисление среднего значения или суммы).
Для объединения и фильтрации данных, подготовленных к выводу.
Пример:
Посчитать количество активных и неактивных пользователей:
db.users.aggregate([
{ $match: { status: { $in: ["active", "inactive"] } } },
{ $group: { _id: "$status", count: { $sum: 1 } } },
{ $sort: { count: -1 } }
])Агрегирующая структура в MongoDB — это универсальный инструмент для сложной обработки данных внутри коллекции, упрощая работу с большими объёмами информации.