コンテンツにスキップ

ページネーション

ページネーション – クエリ結果を小さな部分に分割すること – は limitorderBy、およびフィルタリングパラメータを使用して行うことができます。GraphQL Analytics APIは、ページネーションのためのカーソルをサポートしていません。

  • limit (整数) は返すレコードの数を定義します。
  • orderBy (文字列) はデータのソート順を定義します。

カーソルなしでのクエリページ

私たちの例では、dateclientCountryName の関係が一意であると仮定しています。

クエリの最初の n 件の結果を取得

結果を制限するには、整数として limit パラメータを追加します。例えば、最初の2件のレコードをクエリするには次のようにします:

firewallEventsAdaptive (limit: 2, orderBy: [datetime_ASC, clientCountryName_ASC]) {
datetime
clientCountryName
}

レスポンス

{
"firewallEventsAdaptive" : [
{
"datetime": "2018-11-12T00:00:00Z",
"clientCountryName": "UM"
},
{
"datetime": "2018-11-12T00:00:00Z",
"clientCountryName": "US"
}
]
}

フィルタを使用して次のページをクエリ

次の n 件の結果を取得するには、前のクエリの最後の結果を除外するフィルタを指定します。前の例を取り上げると、clientCountryName フィールドに大なり演算子 (_gt) を、datetime フィールドに大なりイコール演算子 (_geq) を追加することでこれを行うことができます。ここで、ソート順を具体的にすることが重要になります。より詳細なソート順を使用することで、結果を見逃す可能性が低くなります。

firewallEventsAdaptive (limit: 2, orderBy: [datetime_ASC, clientCountryName_ASC], filter: {datetime_geq: "2018-11-12T00:00:00Z", clientCountryName_gt: "US"}) {
datetime
clientCountryName
}

レスポンス

{
"firewallEventsAdaptive" : [
{
"datetime": "2018-11-12T00:00:00Z",
"clientCountryName": "UY"
},
{
"datetime": "2018-11-12T00:00:00Z",
"clientCountryName": "UZ"
}
]
}

前のページをクエリ

前の n 件の結果を取得するには、フィルタとソート順を逆にします。

firewallEventsAdaptive (limit: 2, orderBy: [datetime_DESC, clientCountryName_DESC], filter: {datetime_leq: "2018-11-12T00:00:00Z", clientCountryName_lt: "UY"}) {
datetime
clientCountryName
}

レスポンス

{
"firewallEventsAdaptive" : [
{
"datetime": "2018-11-12T00:00:00Z",
"clientCountryName": "US"
},
{
"datetime": "2018-11-12T00:00:00Z",
"clientCountryName": "UM"
}
]
}