Condividi tramite


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 conteggio LIMIT sono previsti nella clausola OFFSET LIMIT. Se viene utilizzata una clausola ORDER 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 usa OFFSET 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 usare OFFSET LIMIT se si intende passare al millesimo risultato della query e non è necessario visualizzare i risultati da 1 a 999. Nel back-end carica OFFSET 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.