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

⚠️ Ошибки

📁 Блок: 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 в неправильной логике задачи.

Типичные ошибки

Опечатка find).skip

Симптом: Команда не выполняется.

Исправление: Правильная цепочка: db.US_Adult_Income.find().skip(3).limit(3).

$and без массива

Симптом: mongosh выдаёт ошибку структуры запроса.

Исправление: $and принимает массив документов-условий.

$not применён к двум полям сразу

Симптом: Запрос не соответствует смыслу.

Исправление: $not инвертирует конкретный оператор поля; для нескольких условий используйте $nor.

limit до сортировки в анализе результата

Симптом: Вы выбрали первые документы, а потом отсортировали только их в голове.

Исправление: Формулируйте цепочку как сортировка нужного набора, затем ограничение.