OFFSET LIMIT (NoSQL-query)
VAN TOEPASSING OP: NoSQL
De OFFSET LIMIT
component is een optionele component om over te slaan en vervolgens een aantal waarden uit de query te nemen . Het OFFSET
aantal en het LIMIT
aantal zijn vereist in de component OFFSET LIMIT.
Wanneer OFFSET LIMIT
wordt gebruikt met een ORDER BY
component, wordt de resultatenset geproduceerd door de geordende waarden over te slaan en op te nemen. Als er geen ORDER BY
component wordt gebruikt, resulteert dit in een deterministische volgorde van waarden.
Syntaxis
OFFSET <offset_amount> LIMIT <limit_amount>
Argumenten
Beschrijving | |
---|---|
<offset_amount> |
Hiermee geeft u het gehele aantal items op dat door de queryresultaten moet worden overgeslagen. |
<limit_amount> |
Hiermee geeft u het gehele aantal items op dat de queryresultaten moeten bevatten. |
Voorbeelden
Voor het voorbeeld in deze sectie wordt deze referentieset met items gebruikt. Elk item bevat een name
eigenschap.
[
{
"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"
}
]
Notitie
In de oorspronkelijke JSON-gegevens worden de items niet gesorteerd.
Het eerste voorbeeld bevat een query die alleen de name
eigenschap retourneert van alle items die in alfabetische volgorde zijn gesorteerd.
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"
}
]
Dit volgende voorbeeld bevat een query met behulp van de OFFSET LIMIT
component om het eerste item over te slaan. De limiet wordt ingesteld op het aantal items in de container om alle mogelijke resterende waarden te retourneren. In dit voorbeeld slaat de query één item over en retourneert de resterende vier (van een limiet van vijf).
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"
}
]
Dit laatste voorbeeld bevat een query met behulp van de OFFSET LIMIT
component om een subset van de overeenkomende items te retourneren door één item over te slaan en de volgende drie te nemen.
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"
}
]
Opmerkingen
- Zowel het
OFFSET
aantal als hetLIMIT
aantal zijn vereist in deOFFSET LIMIT
component. Als er een optioneleORDER BY
component wordt gebruikt, wordt de resultatenset geproduceerd door de geordende waarden over te slaan. Anders retourneert de query een vaste volgorde van waarden. - De RU-kosten van een query met
OFFSET LIMIT
toenamen naarmate het aantal termen dat wordt verschoven, toeneemt. Voor query's met meerdere pagina's met resultaten raden we doorgaans aan om vervolgtokens te gebruiken. Vervolgtokens zijn een bladwijzer voor de plaats waar de query later kan worden hervat. Als u gebruiktOFFSET LIMIT
, is er geen bladwijzer. Als u de volgende pagina van de query wilt retourneren, moet u beginnen vanaf het begin. - U moet deze gebruiken
OFFSET LIMIT
voor gevallen waarin u items helemaal wilt overslaan en clientbronnen wilt opslaan. U moet bijvoorbeeld gebruikenOFFSET LIMIT
als u naar het 1000e queryresultaat wilt gaan en geen resultaten 1 tot en met 999 hoeft weer te geven. Laad op de back-endOFFSET LIMIT
nog steeds elk item, inclusief de items die worden overgeslagen. Het prestatievoordeel wordt gemeten bij het verminderen van clientresources door te voorkomen dat items worden verwerkt die niet nodig zijn.