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
Was this helpful?