OFFSET LIMIT (NoSQL クエリ)

適用対象: NoSQL

OFFSET LIMIT 句は、スキップした後、クエリからいくつかの値を取得するオプションの句です。 OFFSET LIMIT 句には、OFFSET の数と LIMIT の数が必要です。

OFFSET LIMITORDER BY 句と一緒に使用した場合、スキップが実行され、順序付けられた値を受け取る結果セットが生成されます。 ORDER BY 句を使用しない場合、決定論的順序の値になります。

構文

OFFSET <offset_amount> LIMIT <limit_amount>

引数

説明
<offset_amount> クエリの結果でスキップする項目の数を整数で指定します。
<limit_amount> クエリ結果に含める項目の数を整数で指定します。

このセクションの例では、この項目の参照セットを使用します。 各項目には 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"
  }
]

Note

元の JSON データでは、項目は並べ替えされません。

最初の例には、アルファベット順に並べ替えられたすべてのアイテムの name プロパティのみを返すクエリが含まれています。

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

次の例では、 OFFSET LIMIT 句を使用して最初の項目をスキップするクエリを含めます。 この制限は、コンテナー内の項目の数に設定され、残りの値をすべて返します。 この例では、クエリは one 項目をスキップし、残りの four を返します (上限は 5 個です)。

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

この最後の例には、 OFFSET LIMIT 句を使用して、一致する項目のサブセットを返すクエリ 含まれています。このクエリでは、1 つ 項目をスキップし、次の three を取得します。

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

解説

  • OFFSET LIMIT 句には、OFFSET 数と LIMIT 数の両方が必要です。 省略可能な ORDER BY 句を使用すると、順序付けられた値に対してスキップを実行することで結果セットが生成されます。 そうでない場合、クエリでは、決められた順序の値が返されます。
  • OFFSET LIMIT を使用するクエリの RU 料金は、オフセットされる用語の数が増えるにつれて増加します。 複数の結果ページがあるクエリの場合は、通常、継続トークンを使用することをお勧めします。 継続トークンとは、後でクエリを再開できる場所の "ブックマーク" です。 OFFSET LIMIT を使用する場合、"ブックマーク" はありません。 クエリの次のページを返す場合は、最初から開始する必要があります。
  • 項目を完全にスキップしてクライアント リソースを節約したい場合は、OFFSET LIMIT を使用してください。 たとえば、1000 番目のクエリ結果にスキップし、1 から 999 の結果は表示する必要がない場合は、OFFSET LIMIT を使用します。 バックエンドでは、OFFSET LIMIT は引き続き、スキップされた項目を含めて各項目を読み込みます。 パフォーマンス上の利点は、不要な項目の処理を回避することによる、クライアント リソースの削減で測定されます。