← К оглавлению занятия

📝 Задания

📁 Блок: MongoDB / Практикум / Запросы ⏱️ Время изучения: ~90 мин 🎯 Сложность: Практикум

⚡ Кратко: суть занятия

Практикум 15 закрепляет фильтры MongoDB на коллекции ich.imdb.

Основные инструменты: find(), countDocuments(), sort(), limit() и проекция полей.

Отсутствие режиссёра проверяется через $exists: false или через аккуратную проверку пустого массива, если поле есть.

Фильмы США и Франции ищутся по массиву countries через $all.

Китайский или французский язык удобно искать через $in в поле languages.

Жанры Mystery и Sci-Fi вместе требуют $all, а вариант ИЛИ — $in.

Для максимального рейтинга нужно исключить документы без imdb.rating и отсортировать по убыванию.

Топ-3 ошибки: путать $all и $in, сортировать строковые годы как числа без проверки типа, считать документы через find().length вместо countDocuments().

Задания для закрепления из источника

1

Задание 1

Из коллекции ich.imdb найти фильмы или сериалы, в которых не указан режиссёр.

2

Задание 2

Найти фильмы, произведённые в США и Франции.

3

Задание 3

Найти фильмы на китайском.

4

Задание 4

Найти фильмы на китайском или французском.

5

Задание 5

Найти фильмы, жанры которых Mystery и Sci-Fi.

6

Задание 6

Найти фильмы, жанры которых Mystery или Sci-Fi.

7

Задание 7

Найти самый новый фильм без отметки рейтинга.

8

Задание 8

Найти runtime и type сериала Berlin Alexanderplatz.

9

Задание 9

Найти самый длинный сериал.

10

Задание 10

Найти фильм или сериал с самым высоким рейтингом, исключив пустые рейтинги.

11

Задание 11

Найти топ-10 фильмов по imdb.rating из 1989 года.

12

Задание 12

Подсчитать, у скольких фильмов есть ровно 2 wins в awards.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Какой оператор нужен для стран USA и France одновременно?

Вопрос 2

Какой оператор подходит для языка Chinese или French?

Вопрос 3

Что делает countDocuments()?

Вопрос 4

Как получить лучший рейтинг первым?

Вопрос 5

Зачем исключать пустой imdb.rating?

Вопрос 6

Как ограничить топ-10?