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