LIMIT PRZESUNIĘCIA (zapytanie NoSQL)
DOTYCZY: NoSQL
Klauzula OFFSET LIMIT
jest klauzulą opcjonalną do pominięcia , a następnie podjęcia pewnej liczby wartości z zapytania. Liczba OFFSET
i LIMIT
liczba są wymagane w klauzuli OFFSET LIMIT.
Gdy OFFSET LIMIT
jest używany z klauzulą ORDER BY
, zestaw wyników jest generowany przez pomijanie i przejmowanie uporządkowanych wartości. Jeśli nie ORDER BY
jest używana żadna klauzula, powoduje to deterministyczną kolejność wartości.
Składnia
OFFSET <offset_amount> LIMIT <limit_amount>
Argumenty
opis | |
---|---|
<offset_amount> |
Określa liczbę całkowitą elementów, które wyniki zapytania powinny pominąć. |
<limit_amount> |
Określa liczbę całkowitą elementów, które powinny zawierać wyniki zapytania. |
Przykłady
W przykładzie w tej sekcji jest używany ten zestaw odwołań elementów. Każdy element zawiera name
właściwość.
[
{
"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"
}
]
Uwaga
W oryginalnych danych JSON elementy nie są sortowane.
Pierwszy przykład zawiera zapytanie, które zwraca tylko name
właściwość ze wszystkich elementów posortowanych w kolejności alfabetycznej.
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"
}
]
W następnym przykładzie uwzględniono zapytanie używające klauzuli OFFSET LIMIT
, aby pominąć pierwszy element. Limit jest ustawiony na liczbę elementów w kontenerze, aby zwrócić wszystkie możliwe wartości pozostałe. W tym przykładzie zapytanie pomija jeden element i zwraca pozostałe cztery (z limitu pięciu).
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"
}
]
Ten ostatni przykład obejmuje zapytanie używające klauzuli , OFFSET LIMIT
aby zwrócić podzbiór pasujących elementów, pomijając jeden element i wykonując następne trzy.
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"
}
]
Uwagi
OFFSET
Zarówno liczba, jak iLIMIT
liczba są wymagane w klauzuliOFFSET LIMIT
. Jeśli jest używana klauzula opcjonalnaORDER BY
, zestaw wyników jest generowany przez pominięcie uporządkowanych wartości. W przeciwnym razie zapytanie zwraca stałą kolejność wartości.- Opłata za jednostkę RU zapytania zwiększa się wraz ze
OFFSET LIMIT
wzrostem liczby terminów przesunięcia. W przypadku zapytań, które mają wiele stron wyników, zwykle zalecamy używanie tokenów kontynuacji. Tokeny kontynuacji to "zakładka" dla miejsca, w którym zapytanie może być później wznowione. Jeśli używasz poleceniaOFFSET LIMIT
, nie ma "zakładki". Jeśli chcesz zwrócić następną stronę zapytania, musisz zacząć od początku. - Należy użyć
OFFSET LIMIT
w przypadku przypadków, w których chcesz całkowicie pominąć elementy i zapisać zasoby klienta. Na przykład należy użyćOFFSET LIMIT
polecenia , jeśli chcesz przejść do 1000 wyników zapytania i nie ma potrzeby wyświetlania wyników od 1 do 999. Na zapleczuOFFSET LIMIT
nadal ładuje każdy element, w tym te elementy, które są pomijane. Zaleta wydajności jest mierzona w zmniejszaniu zasobów klienta, unikając przetwarzania elementów, które nie są potrzebne.