【问题标题】:strapi graphql plugin: how to get all recordsStrapi graphql 插件:如何获取所有记录
【发布时间】:2020-03-20 14:52:29
【问题描述】:

意图:

我需要 graphql 来返回所有记录

问题:

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。 如果我要将limit: -1limit: 0 提供给graphql 查询,它会将100 的默认limit。 如果我要给 (else if (params.limit &lt; 0)) 任何其他低于0nr,但不是-1,插件会使用limit: 0 查询strapi(所有记录)

解决方法

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

解决方案!?

有什么想法吗?

【问题讨论】:

    标签: graphql graphql-js strapi


    【解决方案1】:

    DMehaffy (Not Strapi Employee) 12:35 PM Strapi 现在不使用典型的版本系统(它会在稳定时使用) 无法获得所有条目是的。为了防止大量查询基本上锁定您的服务器, 又称 DDoS。 Strapi 是 nodejs(基本上是单线程)大规模一次性查询并不是提取所有数据的最有效方式,尤其是在负载平衡设置中 抓取一个计数,将其划分,并同时或异步发出多个较小的请求,然后将记录合并到客户端 当然,您会注入更多的往返时间,但从长远来看,它会更快一些(尤其是在负载平衡多个 Strapi 实例时)

    显然,在strapi 版本beta.17.5 中,负限制将被完全删除,因此该问题已过时。

    从上面的 Strapi 响应来看,他们正在研究解决方案,但此时,对于我当前的版本 Strapi 3.0.0-beta.14,负查找仍然可用,但它将被删除,并带有正在提供新的解决方案。

    【讨论】:

      猜你喜欢
      • 2020-04-17
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      相关资源
      最近更新 更多