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

📖 Теория

📁 Блок: 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 не в той последовательности.

Теория по источнику

Возможности Compass из источника

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

Интерфейс помогает формировать запрос пошагово: отдельно Filter, Project и Sort.

История запросов полезна для практикума: можно вернуться к рабочему фильтру и изменить только одно условие.

План выполнения и валидация

Источник упоминает план выполнения запросов — это способ понять, как MongoDB будет искать документы.

Также показан пример $jsonSchema для проверки документов, где поле vendor обязательно и ограничено значениями car2go или enjoy.

Подробные правила JSON Schema шире текущего урока, поэтому их стоит сверять с документацией MongoDB.

Новые операторы

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

$exists: true выбирает документы, где поле есть, даже если там null; $exists: false выбирает документы без поля.

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

Проверить по документации. Расширенные возможности MongoDB, которые источник упоминает обзорно, проверяйте по официальной документации перед применением в рабочем проекте.