Объектно-ориентированное программирование и обработка данных

4. Конвейерная обработка.

  1. Создайте классы для студентов, оценок и курсов, аналогичные классам рассмотренным на лекциях. Отличие создаваемых классов должно заключатся в том, что оценки коллекция оценок находится в классе студентов, а в классе оценок хранится информация о курсе, за который получена оценка.

    Создайте коллекции mongo для курсов и студентов, заполнив такими же оценками, как и в примере на лекции.

  2. С помощью одной стадии match конвейера фреймворка агрегации найдите в коллекции студентов, не имеющих оценки ниже 4.

    Подсказска: Используйте elemMatch.

  3. Добавьте стадию unwind, которая разворачивает документы в коллекции студентов, создавая отдельный документ для каждой оценки.

  4. Добавьте стадию project, которая оставляет в коллекции только поля с именем студента, названием курса и оценкой.

  5. Добавьте стадию group, после которой должны остаться только наибольшие оценки каждого студента по каждому предмету.

    Подсказка: Для создания индекса из двух полей используйте функцию fields