🏠 Домашнее задание
⚡ Кратко: суть занятия
Занятие 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 в неправильной логике задачи.
Домашнее задание из источника
- Коллекция imdb: используя $size, найдите фильмы, написанные 3 сценаристами и снятые 2 режиссёрами.
- Коллекция bookings: найдите адрес автомобиля с vin WME4530421Y135045 по самой последней final_date.
- Коллекция bookings: подсчитайте, у скольких автомобилей при окончании аренды закончилось топливо final_fuel.
- Коллекция bookings: найдите номерной знак и vin авто с самым большим distance.
- Коллекция imdb: найдите фильм с участием "Brad Pitt" с самым высоким imdb.rating.
Подготовка окружения
- Откройте MongoDB Compass или mongosh, если работа идёт в оболочке.
- Проверьте выбранную базу и коллекцию перед запуском запроса.
- Сначала выполните фильтр без Project, чтобы увидеть реальные имена и типы полей.
Проверка результата
- Команда или фильтр запускается без синтаксической ошибки.
- Использованы именно те коллекции, которые названы в задании.
- Для вложенных полей применяется точечная нотация, а для массивов — подходящий оператор.
Проверить по документации. Если интерфейс Compass или структура sample data отличается от источника, сверяйте поля по документам коллекции и официальной документации MongoDB.