OFFSET LIMIT (NoSQL-lekérdezés)
A KÖVETKEZŐRE VONATKOZIK: NoSQL
A OFFSET LIMIT
záradék egy választható záradék, amelyet kihagyhat, majd több értéket vehet fel a lekérdezésből. A OFFSET
darabszámot és a LIMIT
darabszámot az OFFSET LIMIT záradékban kell megadni.
Ha OFFSET LIMIT
záradékkal ORDER BY
használja a rendszer, az eredményhalmaz a kihagyás és a rendezett értékek figyelembevétele révén jön létre. Ha nem ORDER BY
használ záradékot, az értékek determinisztikus sorrendjét eredményezi.
Syntax
OFFSET <offset_amount> LIMIT <limit_amount>
Argumentumok
Leírás | |
---|---|
<offset_amount> |
Megadja a lekérdezés eredményeinek kihagyandó elemeinek egész számát. |
<limit_amount> |
A lekérdezés eredményeinek tartalmaznia kell az elemek egész számát. |
Példák
Az ebben a szakaszban szereplő példában ez a referenciaelem-készlet használatos. Minden elem tartalmaz egy tulajdonságot name
.
[
{
"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"
}
]
Feljegyzés
Az eredeti JSON-adatokban az elemek nincsenek rendezve.
Az első példa egy lekérdezést tartalmaz, amely csak a tulajdonságot adja vissza az name
összes elemből betűrendbe rendezve.
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"
}
]
Ez a következő példa tartalmaz egy lekérdezést, amely a OFFSET LIMIT
záradék használatával kihagyja az első elemet. A korlát a tárolóban lévő elemek számára van beállítva az összes lehetséges fennmaradó érték visszaadásához. Ebben a példában a lekérdezés kihagy egy elemet, és a fennmaradó négyet adja vissza (ötből).
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"
}
]
Ez az utolsó példa egy lekérdezést tartalmaz, amely a OFFSET LIMIT
záradék használatával adja vissza az egyező elemek egy részhalmazát az egyik elem kihagyásával és a következő három elem figyelembe vételével.
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"
}
]
Megjegyzések
- A záradékban mind a
OFFSET
darabszámLIMIT
, mind aOFFSET LIMIT
darabszám megadása kötelező. Ha nem kötelezőORDER BY
záradékot használ, az eredményhalmaz a rendezett értékek kihagyásával jön létre. Ellenkező esetben a lekérdezés rögzített értéksorrendet ad vissza. - Az eltolás alatt álló kifejezések számának növekedésével
OFFSET LIMIT
egy lekérdezés ru-díja nő. A többoldalú eredményeket tartalmazó lekérdezések esetében általában a folytatási jogkivonatok használatát javasoljuk. A folytatási jogkivonatok "könyvjelzők" ahhoz a helyhez, ahol a lekérdezés később folytatódhat. Ha használjaOFFSET LIMIT
, nincs "könyvjelző". Ha vissza szeretné adni a lekérdezés következő oldalát, az elejétől kell kezdenie. - Olyan esetekben érdemes használnia
OFFSET LIMIT
, amikor teljesen át szeretné hagyni az elemeket, és menteni szeretné az ügyfélerőforrásokat. Ha például az 1000. lekérdezési eredményre szeretne ugrani,OFFSET LIMIT
és nem kell 1–999-es eredményt megtekintenie. A háttérrendszerenOFFSET LIMIT
továbbra is betölti az egyes elemeket, beleértve a kihagyott elemeket is. A teljesítményelőnyt az ügyfélerőforrások csökkentésében mérik, elkerülve a felesleges elemek feldolgozását.