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",
"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"
}
]
Hinweis
In den ursprünglichen JSON-Daten werden die Elemente nicht sortiert.
Das erste Beispiel enthält eine Abfrage, die nur die Eigenschaft aus allen Elementen zurückgibt, die name
in alphabetischer Reihenfolge sortiert sind.
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"
}
]
Dieses nächste Beispiel enthält eine Abfrage, die die OFFSET LIMIT
Klausel verwendet, um das erste Element zu überspringen. Der Grenzwert wird auf die Anzahl der Elemente im Container festgelegt, um alle möglichen verbleibenden Werte zurückzugeben. In diesem Beispiel überspringt die Abfrage ein Element und gibt die verbleibenden vier elemente zurück (aus einem Grenzwert von fünf).
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"
}
]
Dieses letzte Beispiel enthält eine Abfrage, die die OFFSET LIMIT
Klausel verwendet, um eine Teilmenge der übereinstimmenden Elemente zurückzugeben, indem ein Element übersprungen und die nächsten drei Elemente verwendet werden.
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"
}
]
Hinweise
- 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.