OFFSET LIMIT (запрос NoSQL)
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
Предложение OFFSET LIMIT
является необязательным предложением, чтобы пропустить , а затем принять некоторое количество значений из запроса. Количество OFFSET
и LIMIT
количество необходимы в предложении OFFSET LIMIT.
При OFFSET LIMIT
использовании с предложением ORDER BY
результирующий набор создается путем пропуска и принятия упорядоченных значений. Если предложение не ORDER BY
используется, оно приводит к детерминированному порядку значений.
Синтаксис
OFFSET <offset_amount> LIMIT <limit_amount>
Аргументы
Description | |
---|---|
<offset_amount> |
Задает целое число элементов, которые следует пропустить в результатах запроса. |
<limit_amount> |
Указывает целое число элементов, которые должны содержать результаты запроса. |
Примеры
В этом разделе используется этот ссылочный набор элементов. Каждый элемент содержит name
свойство.
[
{
"name": "Sawyer Miller",
"team": "Leadership team"
},
{
"name": "Jennifer Wilkins",
"team": "Leadership team"
},
{
"name": "Hannah Haynes",
"team": "Leadership team"
},
{
"name": "Isaac Talbot",
"team": "Leadership team"
},
{
"name": "Riley Johnson",
"team": "Leadership team"
}
]
Примечание.
В исходных данных JSON элементы не сортируются.
Первый пример включает запрос, который возвращает только name
свойство из всех элементов, отсортированных в алфавитном порядке.
SELECT VALUE {
name: e.name
}
FROM
employees e
WHERE
e.team = "Leadership team"
ORDER BY
e.name
[
{
"name": "Hannah Haynes"
},
{
"name": "Isaac Talbot"
},
{
"name": "Jennifer Wilkins"
},
{
"name": "Riley Johnson"
},
{
"name": "Sawyer Miller"
}
]
В следующем примере содержится запрос с помощью OFFSET LIMIT
предложения, чтобы пропустить первый элемент. Ограничение присваивается количеству элементов в контейнере, чтобы вернуть все возможные оставшиеся значения. В этом примере запрос пропускает один элемент и возвращает оставшиеся четыре (из предела в пять).
SELECT VALUE {
name: e.name
}
FROM
employees e
WHERE
e.team = "Leadership team"
ORDER BY
e.name
OFFSET 1 LIMIT 5
[
{
"name": "Isaac Talbot"
},
{
"name": "Jennifer Wilkins"
},
{
"name": "Riley Johnson"
},
{
"name": "Sawyer Miller"
}
]
В этом последнем примере содержится запрос с помощью OFFSET LIMIT
предложения, чтобы вернуть подмножество соответствующих элементов, пропуская один элемент и принимая следующие три.
SELECT VALUE {
name: e.name
}
FROM
employees e
WHERE
e.team = "Leadership team"
ORDER BY
e.name
OFFSET 1 LIMIT 3
[
{
"name": "Isaac Talbot"
},
{
"name": "Jennifer Wilkins"
},
{
"name": "Riley Johnson"
}
]
Замечания
- В предложении
OFFSET LIMIT
значенияOFFSET
иLIMIT
являются обязательными. Если используется необязательное предложениеORDER BY
, результирующий набор создается путем пропуска значений в упорядоченном наборе. В противном случае запрос возвращает фиксированный порядок значений. - Плата за единицу запросов увеличивается по
OFFSET LIMIT
мере увеличения числа смещений терминов. Для запросов, возвращающих несколько страниц результатов, обычно рекомендуется использовать маркеры продолжения. Маркеры продолжения — это "закладки" для мест, откуда запрос может быть возобновлен. Если вы используетеOFFSET LIMIT
, нет "закладки". Если вы хотите вернуть следующую страницу запроса, необходимо начать с начала. OFFSET LIMIT
следует использовать в случаях, когда требуется полностью пропустить элементы и сохранить ресурсы клиента. Например,OFFSET LIMIT
стоит использовать, если необходимо перейти сразу к 1000-му результату в списке и не просматривать результаты с 1-го по 999-й. На серверной частиOFFSET LIMIT
по-прежнему загружается каждый элемент, включая пропущенные элементы. Преимущество производительности измеряется при сокращении клиентских ресурсов, избегая обработки элементов, которые не нужны.