MongoDB: Выборка данных из коллекции (find(), limit())

Выборка всех записей

Для вывода всех записей из коллекции 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 предоставляет гибкие инструменты для эффективного извлечения необходимой информации.

Что будем искать? Например,программа