strapi graphql 插件:如何获取所有记录

strapi graphql plugin: how to get all records

意图:

我需要 graphql 来 return 所有记录

问题:

amountLimit 在 strapi 插件上的实现方式不同

问题:

有人能告诉我为什么 graphql amountLimit 是这样实现的吗?

  amountLimiting: (params = {}) => {
    const { amountLimit } = strapi.plugins.graphql.config;
    if(!amountLimit) return params;
    if (!params.limit || params.limit === -1 || params.limit > amountLimit) {
      params.limit = amountLimit;
    } else if (params.limit < 0) {
      params.limit = 0;
    } 
    return params;
  },

解释:

strapi 对所有记录都有 _limit = 0,但在 graphql 插件上,他们添加了默认限制 100。 如果我要为 graphql 查询提供 limit: -1limit: 0,它将使用 100 的默认 limit。 如果我要给 (else if (params.limit < 0)) 低于 0 的任何其他 nr,但它不是 -1,插件会使用 limit: 0(所有记录)查询 strapi

解决方法

我需要一种查询所有记录的 graphql 方法,但是将限制设置为 -2 对我来说似乎有点随机(因为将限制设置为任何 -(2^31) < nr < -1 数字)

解决方案!?

有什么想法吗?

DMehaffy (Not Strapi Employee) 12:35 PM Strapi doesn't use the typical version system right now (it will when it goes stable) unable to get all entries yes. To prevent massive queries from basically locking up your server, aka DDoS. Strapi being nodejs (basically single threaded) massive one off queries is not the most effective way to pull all the data, especially in a load balancing setup grab a count, divide it up, and make multiple smaller requests at the same time or asynchronously then merge the records together client side Sure you are injecting a bit more round trip time, but in the long run it is quite a bit faster (especially when load balancing multiple strapi instances)

显然,在 strapi 版本 beta.17.5 中,负数限制将被完全删除,从而使这个问题过时。

从上面的 Strapi 回复来看,他们正在研究解决方案,但此时,对于 Strapi 3.0.0-beta.14 这是我当前的版本,否定查找仍然可用,但它将是已删除,并提供了新的解决方案。