Pagination
#Paginate query results
Hygraph supports various arguments for paginating content entries:
Argument | Type | Definition |
---|---|---|
first | Int | Seek forwards from start of result set. |
last | Int | Seek backwards from end of result set. |
skip | Int | Skip result set by given amount. |
before | String | Seek backwards before specific ID. |
after | String | Seeks forwards after specific ID. |
You cannot combine first
with before
, or last
with after
.
The default result size of results returned by queries fetching multiple entries is 10
. You can provide a maximum of 100
to the first
, or last
arguments.
The limit of 10/100 applies to projects created after 14-06-2022. Projects created before that date have a limit of 100/1000.
#Pagination limits
To fetch the pagination limits of your projects, you need to access the API Playground section of your Hygraph project, select Management API
from the Environment
dropdown located at the top of the screen, and run the following query:
{viewer {project(id: "<PROJECTID>") {defaultPaginationSizemaxPaginationSize}}}
#Nested pagination
You can also use first
, last
, skip
, before
, and after
arguments with any nested relations. For example, let's imagine our post has comments:
{posts {idcomments(first: 6, skip: 6) {idcreatedAt}}}
#Relay cursor connections
Hygraph follows the Relay cursor connection specification. Each of your project models also contain a connection type, automatically managed by Hygraph.
The example below shows us how we can query for the first 3
posts, after
the cursor
(ID) abc
. We can also query pageInfo
to check whether there are more pages using hasNextPage
.
The PageInfo
is useful when paginating.
{postsConnection(first: 3, after: "abc") {edges {cursornode {idtitle}}pageInfo {hasNextPagehasPreviousPagestartCursorendCursorpageSize}}}
Learn more about fetching with Relay.