find()
Выбор документов по фильтру.
db.imdb.find({ languages: "Chinese" })
Практикум 15 закрепляет фильтры MongoDB на коллекции ich.imdb.
Основные инструменты: find(), countDocuments(), sort(), limit() и проекция полей.
Отсутствие режиссёра проверяется через $exists: false или через аккуратную проверку пустого массива, если поле есть.
Фильмы США и Франции ищутся по массиву countries через $all.
Китайский или французский язык удобно искать через $in в поле languages.
Жанры Mystery и Sci-Fi вместе требуют $all, а вариант ИЛИ — $in.
Для максимального рейтинга нужно исключить документы без imdb.rating и отсортировать по убыванию.
Топ-3 ошибки: путать $all и $in, сортировать строковые годы как числа без проверки типа, считать документы через find().length вместо countDocuments().
find()Выбор документов по фильтру.
db.imdb.find({ languages: "Chinese" })
$existsПроверка наличия или отсутствия поля.
db.imdb.find({ directors: { $exists: false } })
$allМассив содержит все перечисленные значения.
db.imdb.find({ countries: { $all: ["USA", "France"] } })
$inПоле или массив содержит хотя бы одно из значений.
db.imdb.find({ languages: { $in: ["Chinese", "French"] } })
sort()Сортировка выборки.
db.imdb.find({ "imdb.rating": { $exists: true, $ne: "" } }).sort({ "imdb.rating": -1 })
limit()Ограничение числа результатов.
db.imdb.find({ year: "1989" }).sort({ "imdb.rating": -1 }).limit(10)
countDocuments()Подсчёт документов по фильтру.
db.imdb.countDocuments({ "awards.wins": 2 })
Локальный каталог MongoDB: справочник MongoDB. SQL-операторы предыдущих блоков: справочник SQL.