$all
Все перечисленные значения должны быть в массиве поля.
{ genres: { $all: ["Drama", "Fantasy"] } }
Занятие 57 показывает, чем MongoDB Compass помогает при формировании выборки.
Compass умеет показывать коллекции разными видами, анализировать поля, подсказывать запросы и сохранять историю.
Источник отдельно упоминает план выполнения запроса и валидацию документов через $jsonSchema.
$all выбирает документы, где массив содержит все указанные элементы.
$exists проверяет наличие поля, включая случай, когда значение равно null.
$in выбирает документы, где поле равно одному из значений массива.
Практика строится на фильмах: рейтинг Rotten Tomatoes, жанры Drama/Fantasy, страны, Project и Sort.
Топ-3 ошибки: использовать $in вместо $all для нескольких жанров, забыть точечную нотацию tomatoes.viewer.rating, сортировать released не в той последовательности.
$allВсе перечисленные значения должны быть в массиве поля.
{ genres: { $all: ["Drama", "Fantasy"] } }
$existsПроверяет наличие или отсутствие поля.
{ awards: { $exists: true } }
$inПоле равно одному из значений списка.
{ year: { $in: ["1900", "1901", "1902"] } }
Точечная нотацияОбращение к вложенному полю.
{ "tomatoes.viewer.rating": { $gt: 4.5 } }
$jsonSchemaСхема валидации документов.
{ $jsonSchema: { required: ["vendor"] } }
Локальный каталог MongoDB: справочник MongoDB. SQL-операторы предыдущих блоков: справочник SQL.