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 | |