OFFSET LIMIT (NoSQL クエリ)
適用対象: NoSQL
OFFSET LIMIT
句は、スキップした後、クエリからいくつかの値を取得するオプションの句です。 OFFSET LIMIT 句には、OFFSET
の数と LIMIT
の数が必要です。
OFFSET LIMIT
を ORDER 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
は引き続き、スキップされた項目を含めて各項目を読み込みます。 パフォーマンス上の利点は、不要な項目の処理を回避することによる、クライアント リソースの削減で測定されます。