Delen via


OFFSET LIMIT (NoSQL-query)

VAN TOEPASSING OP: NoSQL

De OFFSET LIMIT component is een optionele component om over te slaan en vervolgens een aantal waarden uit de query te nemen . Het OFFSET aantal en het LIMIT aantal zijn vereist in de component OFFSET LIMIT.

Wanneer OFFSET LIMIT wordt gebruikt met een ORDER BY component, wordt de resultatenset geproduceerd door de geordende waarden over te slaan en op te nemen. Als er geen ORDER BY component wordt gebruikt, resulteert dit in een deterministische volgorde van waarden.

Syntaxis

OFFSET <offset_amount> LIMIT <limit_amount>

Argumenten

Beschrijving
<offset_amount> Hiermee geeft u het gehele aantal items op dat door de queryresultaten moet worden overgeslagen.
<limit_amount> Hiermee geeft u het gehele aantal items op dat de queryresultaten moeten bevatten.

Voorbeelden

Voor het voorbeeld in deze sectie wordt deze referentieset met items gebruikt. Elk item bevat een name eigenschap.

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

Notitie

In de oorspronkelijke JSON-gegevens worden de items niet gesorteerd.

Het eerste voorbeeld bevat een query die alleen de name eigenschap retourneert van alle items die in alfabetische volgorde zijn gesorteerd.

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

Dit volgende voorbeeld bevat een query met behulp van de OFFSET LIMIT component om het eerste item over te slaan. De limiet wordt ingesteld op het aantal items in de container om alle mogelijke resterende waarden te retourneren. In dit voorbeeld slaat de query één item over en retourneert de resterende vier (van een limiet van vijf).

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

Dit laatste voorbeeld bevat een query met behulp van de OFFSET LIMIT component om een subset van de overeenkomende items te retourneren door één item over te slaan en de volgende drie te nemen.

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

Opmerkingen

  • Zowel het OFFSET aantal als het LIMIT aantal zijn vereist in de OFFSET LIMIT component. Als er een optionele ORDER BY component wordt gebruikt, wordt de resultatenset geproduceerd door de geordende waarden over te slaan. Anders retourneert de query een vaste volgorde van waarden.
  • De RU-kosten van een query met OFFSET LIMIT toenamen naarmate het aantal termen dat wordt verschoven, toeneemt. Voor query's met meerdere pagina's met resultaten raden we doorgaans aan om vervolgtokens te gebruiken. Vervolgtokens zijn een bladwijzer voor de plaats waar de query later kan worden hervat. Als u gebruikt OFFSET LIMIT, is er geen bladwijzer. Als u de volgende pagina van de query wilt retourneren, moet u beginnen vanaf het begin.
  • U moet deze gebruiken OFFSET LIMIT voor gevallen waarin u items helemaal wilt overslaan en clientbronnen wilt opslaan. U moet bijvoorbeeld gebruiken OFFSET LIMIT als u naar het 1000e queryresultaat wilt gaan en geen resultaten 1 tot en met 999 hoeft weer te geven. Laad op de back-end OFFSET LIMIT nog steeds elk item, inclusief de items die worden overgeslagen. Het prestatievoordeel wordt gemeten bij het verminderen van clientresources door te voorkomen dat items worden verwerkt die niet nodig zijn.