OFFSET LIMIT (NoSQL-Abfrage)
GILT FÜR: NoSQL
Die Klausel OFFSET LIMIT
ist eine optionale Klausel zum Überspringen und dann Annehmen einer Anzahl von Werten aus der Abfrage. In der Klausel „OFFSET LIMIT“ muss die Anzahl OFFSET
und die Anzahl LIMIT
angegeben werden.
Wenn OFFSET LIMIT
bei einer ORDER BY
-Klausel verwendet wird, wird das Resultset erstellt, indem Werte zuerst übersprungen und dann die sortierten Werte angenommen werden. Wenn keine ORDER BY
-Klausel verwendet wird, führt dies zu einer deterministischen Reihenfolge der Werte.
Syntax
OFFSET <offset_amount> LIMIT <limit_amount>
Argumente
BESCHREIBUNG | |
---|---|
<offset_amount> |
Mit diesem Argument wird die ganzzahlige Anzahl von Elementen festgelegt, die die Abfrageergebnisse überspringen sollen. |
<limit_amount> |
Mit diesem Argument wird die ganzzahlige Anzahl von Elementen festgelegt, die die Abfrageergebnisse enthalten sollten. |
Beispiele
Für das Beispiel in diesem Abschnitt wird dieser Verweissatz von Elementen verwendet. Jedes Element enthält eine name
-Eigenschaft.
[
{
"name": "Sawyer Miller",
},
{
"name": "Jennifer Wilkins",
},
{
"name": "Hannah Haynes",
},
{
"name": "Isaac Talbot",
},
{
"name": "Riley Johnson",
}
]
Dieses Beispiel enthält eine Abfrage, die mithilfe der Klausel OFFSET LIMIT
eine Teilmenge der übereinstimmenden Elemente zurückgibt, indem ein Element übersprungen wird und die nächsten drei Elemente verwendet werden.
SELECT VALUE {
name: e.name
}
FROM
employees e
ORDER BY
e.name
OFFSET 1 LIMIT 3
[
{
"name": "Isaac Talbot"
},
{
"name": "Jennifer Wilkins"
},
{
"name": "Riley Johnson"
}
]
Bemerkungen
- Die
OFFSET
-Anzahl und dieLIMIT
-Anzahl sind in derOFFSET LIMIT
-Klausel erforderlich. Wenn eine optionaleORDER BY
-Klausel verwendet wird, wird das Resultset durch Überspringen der sortierten Werte erzeugt. Andernfalls gibt die Abfrage eine feste Reihenfolge von Werten zurück. - Die RU-Gebühr für eine Abfrage mit
OFFSET LIMIT
steigt bei zunehmender Anzahl der versetzten Begriffe. Für Abfragen mit mehreren Ergebnisseiten empfiehlt es sich in der Regel, Fortsetzungstoken zu verwenden. Fortsetzungstoken sind „Lesezeichen“ für die Stelle, an der die Abfrage später fortgesetzt werden kann. Wenn SieOFFSET LIMIT
verwenden, gibt es kein „Lesezeichen“. Wenn Sie die nächste Seite der Abfrage zurückgeben möchten, müssen Sie von Anfang an beginnen. - Sie sollten
OFFSET LIMIT
in Fällen verwenden, in denen Sie Elemente vollständig überspringen und Clientressourcen speichern möchten. Sie solltenOFFSET LIMIT
z. B. verwenden, wenn Sie alles bis zum 1.000. Ergebnis der Abfrage überspringen und die Ergebnisse 1 bis 999 nicht anzeigen möchten. Auf dem Back-End lädtOFFSET LIMIT
weiterhin jedes Element, einschließlich der übersprungenen Elemente. Der Leistungsvorteil wird in der Reduzierung von Clientressourcen gemessen, indem die Verarbeitung von nicht benötigten Elementen vermieden wird.