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

🏠 Домашнее задание

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

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

Занятие 58 переносит фильтры из Compass в mongosh.

Базовая команда выборки — db.collection.find(), а условие передаётся первым аргументом.

Операторы сравнения: $eq, $ne, $gt, $gte, $lt, $lte и $in.

Логические операторы: $and, $or, $nor и $not.

Диапазон можно записать через $and или короче в одном объекте поля: { age: { $gte: 22, $lte: 30 } }.

countDocuments() считает документы по фильтру.

limit(), skip() и sort() управляют размером страницы, пропуском документов и порядком результата.

Топ-3 ошибки: пропустить точку в цепочке find().skip(), использовать $not вместо простого $ne без причины, сортировать после limit в неправильной логике задачи.

Домашнее задание из источника

  1. Коллекция imdb: используя $size, найдите фильмы, написанные 3 сценаристами и снятые 2 режиссёрами.
  2. Коллекция bookings: найдите адрес автомобиля с vin WME4530421Y135045 по самой последней final_date.
  3. Коллекция bookings: подсчитайте, у скольких автомобилей при окончании аренды закончилось топливо final_fuel.
  4. Коллекция bookings: найдите номерной знак и vin авто с самым большим distance.
  5. Коллекция imdb: найдите фильм с участием "Brad Pitt" с самым высоким imdb.rating.

Подготовка окружения

  1. Откройте MongoDB Compass или mongosh, если работа идёт в оболочке.
  2. Проверьте выбранную базу и коллекцию перед запуском запроса.
  3. Сначала выполните фильтр без Project, чтобы увидеть реальные имена и типы полей.

Проверка результата

  • Команда или фильтр запускается без синтаксической ошибки.
  • Использованы именно те коллекции, которые названы в задании.
  • Для вложенных полей применяется точечная нотация, а для массивов — подходящий оператор.
Проверить по документации. Если интерфейс Compass или структура sample data отличается от источника, сверяйте поля по документам коллекции и официальной документации MongoDB.