LIMIT¶
Оператор LIMIT
позволяет нарезать массив результатов с помощью смещения и подсчета. Это уменьшает количество элементов в результате до максимального указанного числа.
Синтаксис¶
Две общие формы оператора LIMIT
:
LIMIT count
LIMIT offset, count
Первая форма позволяет указать только значение count
, в то время как вторая форма позволяет указать и offset
и count
. Первая форма идентична использованию второй формы со значением offset
равным 0
.
Использование¶
1 2 3 |
|
Вышеприведенный запрос возвращает первые пять документов коллекции users
. Его также можно записать как LIMIT 0, 5
для получения того же результата. Какие документы возвращаются на самом деле, довольно произвольно, поскольку явный порядок сортировки не указан. Поэтому ограничение обычно должно сопровождаться операцией SORT
.
Значение offset
указывает, сколько элементов из результата должно быть пропущено. Оно должно быть равно 0 или больше. Значение count
указывает, сколько элементов должно быть включено в результат.
1 2 3 4 |
|
В приведенном выше примере документы users
сортируются, первые два результата пропускаются и возвращаются следующие пять документов пользователей.
{% hint 'info' %} Переменные, выражения и подзапросы не могут быть использованы для offset
и count
. Значения offset
и count
должны быть известны во время компиляции запроса, что означает, что вы можете использовать только литералы чисел, параметры связывания или выражения, которые могут быть определены во время компиляции запроса. {% endhint %}
То, где LIMIT
используется по отношению к другим операциям в запросе, имеет значение. В частности, операции LIMIT
перед FILTER
могут существенно изменить результат, поскольку операции выполняются в том порядке, в котором они записаны в запросе. Подробный пример см. в FILTER.
Операция LIMIT
никогда не применяется к операциям записи (INSERT
, UPDATE
, REPLACE
, REMOVE
, UPSERT
), а только к их возвращаемым результатам. В следующем примере создается пять документов, независимо от LIMIT 2
. Операция LIMIT
ограничивает количество документов, возвращаемых запросом (через RETURN
), только первыми двумя:
1 2 3 4 |
|