MongoDB: сортировка, пагинация

Сортировка - это расстановка элементов в возрастанию/убыванию согласно определенному критерию. В контексте баз данных, мы можем вытянуть данные с СУБД в уже отсортированном порядке.

Представим ситуацию, когда в нашей MongoDB базе есть коллекция с пользователями следующего вида:

id

name

surname

passwordHash

status

age

1

John

Doe

$2y$12$iVhuWPQlloRzPTf....

Active

27

2

Mark

Avreliy

$2y$12$iVhuWPQlloRzPTf....

Disabled

30

Для того, чтобы вытянуть пользователей от старшего к меньшему, нам необходимо будет воспользоваться следующим запросом:

// -1 значит отсортировать "от большего к меньшему".
// для сортировки "от меньшего к большему" необходимо указать 1
userModel.find({}).sort({ age: -1 });

Пагинация - это получение части записей/документов в ответ на определенный поисковый критерий.

Для пагинации характерны следующие 2 понятия:

  • offset (или skip в MongoDB) - количество результатов поиска, которые необходимо отсеять при вытягивании записей/документов по поисковому критерию;

  • limit - количество результатов поиска, которые необходимо принять при вытягивании записей/документов по поисковому критерию. Если результатов поиска меньше, то будет вытянуто имеющееся количество результатов поиска. Например, для того, чтобы вытянуть 3-х пользователей с именем Doe, пропустив первых 2-х, следует выполнить следующий запрос:

userModel.find({ name: 'Doe' }).skip(3).limit(2);

Last updated