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

✅ Решения

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

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

Занятие 57 показывает, чем MongoDB Compass помогает при формировании выборки.

Compass умеет показывать коллекции разными видами, анализировать поля, подсказывать запросы и сохранять историю.

Источник отдельно упоминает план выполнения запроса и валидацию документов через $jsonSchema.

$all выбирает документы, где массив содержит все указанные элементы.

$exists проверяет наличие поля, включая случай, когда значение равно null.

$in выбирает документы, где поле равно одному из значений массива.

Практика строится на фильмах: рейтинг Rotten Tomatoes, жанры Drama/Fantasy, страны, Project и Sort.

Топ-3 ошибки: использовать $in вместо $all для нескольких жанров, забыть точечную нотацию tomatoes.viewer.rating, сортировать released не в той последовательности.

Решения и разбор шагов

1

Подключение

mongodb://ich1:password@mongo.itcareerhub.de/?readPreference=primary&ssl=false&authMechanism=DEFAULT&authSource=ich

Строка дана в источнике; пароль учебный и не должен использоваться вне учебного стенда.

2

Rotten Tomatoes

{ "tomatoes.viewer.rating": { $gt: 4.5 } }

Поле вложенное, поэтому используется точечная нотация.

3

Drama + USA

{ genres: "Drama", countries: "USA" }

Оба поля в одном Filter означают AND.

4

Drama + Fantasy

{ genres: { $all: ["Drama", "Fantasy"] }, countries: "USA" }

$all проверяет наличие обоих жанров в массиве.

5

Project без _id

{ runtime: 1, title: 1, year: 1, _id: 0 }

_id скрывается явно.