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

💻 Примеры

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

Выполнимые примеры

Возраст больше или равен 30

db.US_Adult_Income.find({ age: { $gte: 30 } })

$gte включает 30.

Возраст меньше 30

db.US_Adult_Income.find({ age: { $lt: 30 } })

$lt не включает 30.

Возраст 22 или 32

db.US_Adult_Income.find({ age: { $in: [22, 32] } })

$in удобен для списка точных значений.

CustomerID не ANTON

db.customers.find({ CustomerID: { $not: { $eq: "ANTON" } } })

Это запись из источника через отрицание равенства.

Диапазон короткой записью

db.US_Adult_Income.find({ age: { $gte: 22, $lte: 30 } })

Оба условия относятся к одному полю age.

Пагинация

db.US_Adult_Income.find().skip(3).limit(3)

Сначала пропускаем первые три документа, затем берём следующие три.