4. Конвейерная обработка.
-
Создайте классы для студентов, оценок и курсов, аналогичные классам рассмотренным на лекциях. Отличие создаваемых классов должно заключатся в том, что оценки коллекция оценок находится в классе студентов, а в классе оценок хранится информация о курсе, за который получена оценка.
Создайте коллекции mongo для курсов и студентов, заполнив такими же оценками, как и в примере на лекции.
-
С помощью одной стадии
match
конвейера фреймворка агрегации найдите в коллекции студентов, не имеющих оценки ниже 4.Подсказска: Используйте elemMatch.
-
Добавьте стадию
unwind
, которая разворачивает документы в коллекции студентов, создавая отдельный документ для каждой оценки. -
Добавьте стадию
project
, которая оставляет в коллекции только поля с именем студента, названием курса и оценкой. -
Добавьте стадию
group
, после которой должны остаться только наибольшие оценки каждого студента по каждому предмету.Подсказка: Для создания индекса из двух полей используйте функцию fields