Выборка всех записей
Для вывода всех записей из коллекции users используем запрос:
use <имя_базы_данных>
db.users.find({})
Запрос db.users.find({}) выберет все документы из коллекции users.
Лимитирование количества выводимых записей
Для ограничения количества выводимых записей используется метод limit():
db.users.find({}).limit(2)
Этот запрос выведет только первые две записи.
Указание полей для вывода
Для исключения полей из результата запроса используем второй аргумент в find():
db.users.find({}, { _id: 0 })
_id: 0 указывает на исключение поля _id из результата.
Сортировка данных
Сортировка данных осуществляется с помощью метода sort(). Например, для сортировки по полю age в порядке возрастания:
db.users.find({}, { _id: 0 }).sort({ age: 1 })
Параметр 1 указывает на возрастающую сортировку, -1 – на убывающую.
Для сортировки по нескольким полям:
db.users.find({}, { _id: 0 }).sort({ age: -1, email: 1 })
Этот запрос сортирует сначала по age в убывающем порядке, а при совпадении значений age – по email в возрастающем порядке.
Фильтры и операторы сравнения
Фильтры позволяют выбирать записи по определенным критериям. Для выбора пользователей с age равным 22:
db.users.find({ age: 22 })
Комбинирование фильтров:
db.users.find({ age: 22, email: "bob@test.ru" })
Этот запрос выберет пользователей с age равным 22 и email равным «bob@test.ru».
Логический оператор «ИЛИ» ($or):
db.users.find({ $or: [{ age: 21 }, { email: "bob@test.ru" }] })
Этот запрос выберет пользователей, у которых либо age равен 21, либо email равен «bob@test.ru».
Операторы сравнения:
- $lt (меньше)
- $lte (меньше или равно)
- $gt (больше)
- $gte (больше или равно)
- $eq (равно)
- $ne (не равно)
Пример использования $lt:
db.users.find({ $or: [{ age: { $lt: 38 } }, { email: "bob@test.ru" }] }).sort({ age: 1 })
Этот запрос выберет пользователей, у которых age меньше 38 или email равен «bob@test.ru», отсортированных по age в возрастающем порядке.
Операторы для работы с массивами
Для работы с массивами:
- $size – проверка размера массива
- $elemMatch – поиск элемента, удовлетворяющего условию
- $in – проверка на вхождение элемента в массив
- $nin – проверка на невхождение элемента в массив
- $exists – проверка существования поля
Пример использования $size:
db.users.find({ favColors: { $size: 2 } })
Этот запрос выберет документы, у которых массив favColors содержит два элемента.
Пример использования $in:
db.users.find({ name: { $in: ["john", "jack", "bob"] } })
Этот запрос выберет документы, у которых поле name принимает одно из значений: «john», «jack», «bob».
Пример использования $exists:
db.users.find({ child: { $exists: true } })
Этот запрос выберет документы, у которых существует поле child.
В этом уроке рассмотрены основные методы выборки данных из коллекции MongoDB, включая лимитирование, сортировку, использование фильтров и операторов сравнения для работы с различными типами данных, включая массивы. MongoDB предоставляет гибкие инструменты для эффективного извлечения необходимой информации.