Поделиться через


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 по-прежнему загружается каждый элемент, включая пропущенные элементы. Преимущество производительности измеряется при сокращении клиентских ресурсов, избегая обработки элементов, которые не нужны.