如何正确使用“限制”和“启动”(获取实例数)

时间:2019-03-20 14:40:56

标签: graphql strapi

我想获取模型的所有实例,但要使用分页显示它们,所以我想在每个页面上获取20个项目。

获取模型的前20个项目如下:

const response = await strapi.request('POST', '/graphql', {
    data: {
        query: `query {
            exams (limit: 20, start: 0) {
              name,
              type
              _id,
            }
          }`
    }
})

问题是,为了创建分页功能,我需要提前知道我有多少个“考试”模型实例。

有人知道该怎么做吗?

如果重要的话,我将使用带有graphql插件的trapi cms。

1 个答案:

答案 0 :(得分:0)

您将必须添加计数功能。 这是餐厅内容类型的示例。

./api/restaurant/config/schema.graphql.js

module.exports = {
  definition: /* GraphQL */ `
    type RestaurantsConnection {
      aggregate: RestaurantsAggregate
    }
    type RestaurantsAggregate {
      count: Int
    }
  `,
  query: /* GraphQL */ `
    restaurantsConnection(where: JSON): RestaurantsConnection
  `,
  resolver: {
    Query: {
      restaurantsConnection(_, args) {
        return args;
      },
    },
    RestaurantsConnection: {
      aggregate(args) {
        return args;
      },
    },
    RestaurantsAggregate: {
      count(args) {
        return strapi.controllers.restaurant.count({
          query: args.where || {},
        });
      },
    },
  },
};

现在您已经可以获取计数值了

{
  restaurantsConnection {
    aggregate {
      count
     }
  }
}