Решение $all
db.imdb.find({ genres: { $all: ["Mystery", "Sci-Fi"] } })
Все перечисленные элементы должны быть в массиве genres.
Summary session 15 повторяет MongoDB Compass и запросы mongosh.
Compass помогает анализировать документы, видеть поля, координаты, историю запросов и план выполнения.
$all требует все элементы массива, $in — любое значение из списка, $exists проверяет наличие поля.
find() получает документы, а фильтр передаётся первым аргументом.
Операторы сравнения: $eq, $ne, $gt, $gte, $lt, $lte, $in.
Логические операторы: $and, $or, $nor, $not.
limit(), skip(), $slice и sort() управляют количеством, смещением, массивами и порядком.
Топ-3 ошибки: забыть, что $exists: true включает null, перепутать $not и $ne, поставить skip/limit без стабильной сортировки.
db.imdb.find({ genres: { $all: ["Mystery", "Sci-Fi"] } })
Все перечисленные элементы должны быть в массиве genres.
db.bookings.find({ final_fuel: { $exists: true } })
$exists: true проверяет наличие поля, даже если значение null.
db.users.find({ numbers: { $in: [390, 754, 454] } })
Достаточно одного совпадения из списка.
db.customers.find({ City: "Berlin" })
Фильтр передаётся первым аргументом find().
db.users.find({ $or: [{ ticket_number: 547 }, { winner: true }] })
Возвращаются пользователи с нужным билетом или победители.
db.users.find({ user_id: { $not: { $mod: [5, 1] } } })
Выбираются user_id, которые не дают остаток 1 при делении на 5.