Чтобы найти максимальную и минимальную зарплату в конкретном отделе, мы используем aggregation pipeline MongoDB с двумя этапами: $match и $group.
db.employees.aggregate([
{ $match: { department: "Engineering" } },
{ $group: {
_id: null,
highest: { $max: "$salary" },
lowest: { $min: "$salary" }
}
}
])
$match — фильтрует документы, включая только сотрудников указанного отдела (например, "Engineering"), уменьшая набор данных перед обработкой$group — группирует отфильтрованные документы в один результат, используя _id: null, затем вычисляет:
highest с помощью аккумулятора $max для получения наибольшей зарплатыlowest с помощью аккумулятора $min для получения наименьшей зарплаты_id: null в $group говорит MongoDB рассматривать все совпадающие документы как одну группу$match перед $group — это хорошая практика с точки зрения производительности: так уменьшается количество документов, которые pipeline должен обработать"Engineering" на переменную или параметр, передаваемый во время выполненияУстановка _id: null в стадии $group заставляет MongoDB создавать отдельные группы для каждого уникального значения department вместо агрегации всех найденных документов вместе.
Новый — ещё не проверен сообществом
Вы