分页——将查询结果拆分为更小的部分——可以使用 limit、orderBy 与筛选参数完成。GraphQL Analytics API 不支持用于分页的游标(cursor)。
limit(整数)定义返回多少条记录。orderBy(字符串)定义数据的排序顺序。
我们的示例假定 date 与 clientCountryName 的组合关系是唯一的。
要限制结果数量,请将 limit 参数添加为整数。例如,查询前两条记录:
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"
}
]
}