Sdílet prostřednictvím


OFFSET LIMIT (dotaz NoSQL)

PLATÍ PRO: NoSQL

Klauzule OFFSET LIMIT je volitelná klauzule, která se má přeskočit , a pak z dotazu vzít určitý počet hodnot. Počet OFFSET a LIMIT počet jsou vyžadovány v klauzuli OFFSET LIMIT.

Při OFFSET LIMIT použití s ORDER BY klauzulí se sada výsledků vytvoří tak, že se přeskočí a převezme seřazené hodnoty. Pokud se nepoužívá žádná ORDER BY klauzule, výsledkem je deterministické pořadí hodnot.

Syntaxe

OFFSET <offset_amount> LIMIT <limit_amount>

Argumenty

Popis
<offset_amount> Určuje celočíselné číslo položek, které mají výsledky dotazu přeskočit.
<limit_amount> Určuje celočíselné číslo položek, které mají výsledky dotazu obsahovat.

Příklady

V příkladu v této části se používá tato referenční sada položek. Každá položka obsahuje name vlastnost.

[
  {
    "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"
  }
]

Tento příklad obsahuje dotaz, který pomocí OFFSET LIMIT klauzule vrátí podmnožinu odpovídajících položek tak, že přeskočí jednu položku a vezme další tři.

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"
  }
]

Poznámky

  • V OFFSET klauzuli se vyžaduje OFFSET LIMIT počet i LIMIT počet. Pokud se použije volitelná ORDER BY klauzule, vytvoří se sada výsledků přeskočením seřazených hodnot. V opačném případě dotaz vrátí pevné pořadí hodnot.
  • Poplatky za RU dotazu se s rostoucím OFFSET LIMIT počtem termínů posunu zvyšují. U dotazů s více stránkami výsledků obvykle doporučujeme používat tokeny pokračování. Tokeny pokračování jsou záložkou pro místo, kde se dotaz může později obnovit. Pokud použijete OFFSET LIMIT, neexistuje žádná záložka. Pokud byste chtěli vrátit další stránku dotazu, museli byste začít od začátku.
  • Pro případy, kdy chcete přeskočit položky zcela a uložit prostředky klienta, byste měli použít OFFSET LIMIT . Pokud OFFSET LIMIT například chcete přeskočit na 1000. výsledek dotazu a nemusíte zobrazovat výsledky 1 až 999. Na back-endu OFFSET LIMIT se stále načte každá položka, včetně těch, které se přeskočí. Výhoda výkonu se měří při snižování prostředků klienta tím, že se vyhnete zpracování položek, které nejsou potřeba.