基于偏移量的分页

基于偏移量的分页,通常与通过页面导航相关联,可以通过在查询数据时使用可用的offsetlimit选项来实现。

使用以下类型定义

type User {
    name: String!
}

您将通过执行以下操作来获取前 10 个“页面”。

query {
    users(options: {
        limit: 10
    }) {
        name
    }
}

然后在后续调用中,引入offset参数并在每次调用时将其递增 10。

第 2 页

query {
    users(options: {
        offset: 10
        limit: 10
    }) {
        name
    }
}

第 3 页

query {
    users(options: {
        offset: 20
        limit: 10
    }) {
        name
    }
}

等等。

总页数

您可以使用某个类型的计数查询来获取该类型的总记录数,然后将其除以每页的条目数以计算总页数。这将使您能够确定最后一页是什么,以及是否存在下一页。

有关如何执行这些查询的详细信息,请参阅计数查询。

对关系字段进行分页

假设除了上面的User类型之外,还有一个Post类型,一个User可以拥有多个Post。您也可以获取User,然后对其帖子进行分页

query {
    users(where: {
        name: "Billy"
    }) {
        name
        posts(options: {
            offset: 20
            limit: 10
        }) {
            content
        }
    }
}