OFFSET LIMIT (NoSQL-fråga)
GÄLLER FÖR: NoSQL
OFFSET LIMIT
Satsen är en valfri sats för att hoppa över och sedan ta ett antal värden från frågan. Antalet OFFSET
och antalet LIMIT
krävs i OFFSET LIMIT-satsen.
När OFFSET LIMIT
används med en ORDER BY
sats skapas resultatuppsättningen genom att hoppa över och ta på sig de ordnade värdena. Om ingen ORDER BY
sats används resulterar det i en deterministisk värdeordning.
Syntax
OFFSET <offset_amount> LIMIT <limit_amount>
Argument
beskrivning | |
---|---|
<offset_amount> |
Anger det heltalsantal objekt som frågeresultatet ska hoppa över. |
<limit_amount> |
Anger det heltalsantal objekt som frågeresultatet ska innehålla. |
Exempel
I exemplet i det här avsnittet används den här referensuppsättningen med objekt. Varje objekt innehåller en name
egenskap.
[
{
"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"
}
]
Kommentar
I de ursprungliga JSON-data sorteras inte objekten.
Det första exemplet innehåller en fråga som endast name
returnerar egenskapen från alla objekt sorterade i alfabetisk ordning.
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"
}
]
I nästa exempel ingår en fråga som använder OFFSET LIMIT
-satsen för att hoppa över det första objektet. Gränsen är inställd på antalet objekt i containern för att returnera alla möjliga återstående värden. I det här exemplet hoppar frågan över ett objekt och returnerar de återstående fyra (av en gräns på fem).
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"
}
]
Det här sista exemplet innehåller en fråga som använder OFFSET LIMIT
-satsen för att returnera en delmängd av de matchande objekten genom att hoppa över ett objekt och ta nästa tre.
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"
}
]
Kommentarer
OFFSET
Både antalet och antaletLIMIT
krävs iOFFSET LIMIT
-satsen. Om en valfriORDER BY
sats används skapas resultatuppsättningen genom att hoppa över de ordnade värdena. Annars returnerar frågan en fast ordning med värden.- RU-avgiften för en fråga med
OFFSET LIMIT
ökar när antalet villkor som förskjuts ökar. För frågor som har flera sidor med resultat rekommenderar vi vanligtvis att du använder fortsättningstoken. Fortsättningstoken är ett "bokmärke" för den plats där frågan senare kan återupptas. Om du använderOFFSET LIMIT
finns det inget "bokmärke". Om du vill returnera frågans nästa sida måste du börja från början. - Du bör använda
OFFSET LIMIT
för fall då du vill hoppa över objekt helt och spara klientresurser. Du bör till exempel användaOFFSET LIMIT
om du vill hoppa till det 1000:e frågeresultatet och inte behöver visa resultat 1 till 999. På serverdelenOFFSET LIMIT
läser du fortfarande in varje objekt, inklusive de objekt som hoppas över. Prestandafördelen mäts för att minska klientresurserna genom att undvika bearbetning av objekt som inte behövs.