Чтобы рассчитать среднюю зарплату по отделам, мы используем агрегационный pipeline MongoDB с этапом $group.
db.employees.aggregate([
{
$group: {
_id: "$department",
avgSalary: { $avg: "$salary" }
}
}
])
aggregate() принимает массив этапов pipeline, которые преобразуют документы шаг за шагом$group группирует документы по указанному полю и применяет выражения-аккумуляторы_id: "$department" определяет ключ группировки — каждый уникальный отдел становится отдельной группой$avg: "$salary" — это оператор-аккумулятор, который вычисляет среднее значение salary для всех документов внутри каждой группы[
{ _id: "Engineering", avgSalary: 95000 },
{ _id: "Marketing", avgSalary: 72000 },
{ _id: "HR", avgSalary: 65000 }
]
$sort после $group, чтобы отсортировать результаты по средней зарплате$match перед $group, чтобы сначала отфильтровать документы — это повысит производительность$project после $group, чтобы переименовать или отформатировать поля результатаПоле _id в стадии $group определяет ключ группировки, и установка его на "$department" создает отдельную группу для каждого уникального значения department.
Новый — ещё не проверен сообществом
Вы