Loving Tina? us on GitHub0.0k

文档

学习

v.Latest
Documentation
查询分页
目录

集合查询实现了基于游标的分页。客户端指定一个结果限制参数(使用 firstlast)和一个对应的游标参数(使用 afterbefore),该游标是指向上一页结果中最后一项的指针。

这两个参数都是可选的。如果省略结果限制,将返回最多 10 个结果。如果省略游标,结果将从第一个匹配项开始。

页面信息

一个 pageInfo 对象可用于集合查询,并可用于正向和反向分页。

除了 pageInfo,查询结果中的每个边缘都提供一个 cursor 字段,也可以用于分页。

下表描述了 pageInfo 对象上可用的属性:

字段

类型

描述

hasNextPage

boolean

在正向分页时,指示是否有另一页的结果可用。

hasPreviousPage

boolean

在反向分页时,指示是否有另一页的结果可用。

startCursor

string

结果集中第一项的游标。

endCursor

string

结果集中最后一项的游标。

正向分页

要在正向方向上分页查询结果,使用 firstafter 参数,结合 PageInfo 的 endCursor。

示例

这里我们将查询我们的 post 集合,使用 postConnection,将页面大小限制为 1,并从第二项开始:

{
postConnection(sort: "date", first: 1, after: "cG9zdCNkYXRlIzE2NTUyNzY0MDAwMDAjY29udGVudC9wb3N0cy92b3RlRm9yUGVkcm8uanNvbg==") {
edges {
node {
id
title
date
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
{
"data": {
"postConnection": {
"edges": [
{
"node": {
"id": "content/posts/anotherPost.json",
"title": "Just Another Blog Post",
"date": "2022-07-15T07:00:00.000Z"
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "cG9zdCNkYXRlIzE2NTc4Njg0MDAwMDAjY29udGVudC9wb3N0cy9hbm90aGVyUG9zdC5qc29u"
}
}
}
}

反向分页

要在反向方向上分页查询结果,使用 lastbefore 参数,结合 PageInfo 的 startCursor。

示例

这里我们将查询我们的 post 集合,使用 postConnection,将页面大小限制为 1,并从第一项开始:

{
postConnection(sort: "date", last: 1, before: "cG9zdCNkYXRlIzE2NTc4Njg0MDAwMDAjY29udGVudC9wb3N0cy9hbm90aGVyUG9zdC5qc29u") {
edges {
node {
id
title
date
}
}
pageInfo {
hasPreviousPage
endCursor
}
}
}
{
"data": {
"postConnection": {
"edges": [
{
"node": {
"id": "content/posts/voteForPedro.json",
"title": "Vote For Pedro",
"date": "2022-06-15T07:00:00.000Z"
}
}
],
"pageInfo": {
"hasPreviousPage": false,
"endCursor": "cG9zdCNkYXRlIzE2NTUyNzY0MDAwMDAjY29udGVudC9wb3N0cy92b3RlRm9yUGVkcm8uanNvbg=="
}
}
}
}
上次编辑: March 26, 2025