OFFSET LIMIT (query NoSQL)
SI APPLICA A: NoSQL
La OFFSET LIMIT
clausola è una clausola facoltativa da ignorare e quindi accettare un certo numero di valori dalla query. Il OFFSET
conteggio e il LIMIT
conteggio sono necessari nella clausola OFFSET LIMIT.
Quando OFFSET LIMIT
viene usato con una ORDER BY
clausola , il set di risultati viene generato eseguendo skip e accettando i valori ordinati. Se non viene utilizzata alcuna ORDER BY
clausola, viene restituito un ordine deterministico di valori.
Sintassi
OFFSET <offset_amount> LIMIT <limit_amount>
Argomenti
Descrizione | |
---|---|
<offset_amount> |
Specifica il numero intero di elementi che i risultati della query devono ignorare. |
<limit_amount> |
Specifica il numero intero di elementi che i risultati della query devono includere. |
Esempi
Per l'esempio in questa sezione, viene usato questo set di riferimenti di elementi. Ogni elemento include una name
proprietà .
[
{
"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"
}
]
Nota
Nei dati JSON originali gli elementi non vengono ordinati.
Il primo esempio include una query che restituisce solo la name
proprietà di tutti gli elementi ordinati in ordine alfabetico.
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"
}
]
Nell'esempio seguente viene inclusa una query che usa la OFFSET LIMIT
clausola per ignorare il primo elemento. Il limite è impostato sul numero di elementi nel contenitore per restituire tutti i valori rimanenti possibili. In questo esempio la query ignora un elemento e restituisce i quattro rimanenti (al di fuori di un limite di cinque).
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"
}
]
Questo esempio finale include una query che usa la OFFSET LIMIT
clausola per restituire un subset degli elementi corrispondenti ignorando un elemento e prendendo i tre successivi.
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"
}
]
Osservazioni:
- Sia il conteggio
OFFSET
che il conteggioLIMIT
sono previsti nella clausolaOFFSET LIMIT
. Se viene utilizzata una clausolaORDER BY
facoltativa, il set di risultati viene prodotto eseguendo Ignora sui valori ordinati. In caso contrario, la query restituisce un ordine fisso di valori. - L'addebito ur di una query con
OFFSET LIMIT
aumenta con l'aumento del numero di termini di offset. Per le query con più pagine di risultati, in genere è consigliabile usare token di continuazione. I token di continuazione sono un "segnalibro" per la posizione in cui la query può successivamente riprendere. Se si usaOFFSET LIMIT
, non è presente alcun "segnalibro". Se si desidera restituire la pagina successiva della query, è necessario iniziare dall'inizio. - È consigliabile usare
OFFSET LIMIT
nei casi in cui si desidera ignorare completamente gli elementi e salvare le risorse del client. Ad esempio, è consigliabile usareOFFSET LIMIT
se si intende passare al millesimo risultato della query e non è necessario visualizzare i risultati da 1 a 999. Nel back-end caricaOFFSET LIMIT
comunque ogni elemento, inclusi gli elementi ignorati. Il vantaggio delle prestazioni viene misurato riducendo le risorse client evitando l'elaborazione di elementi non necessari.