Graphql 图形ql+;继电器连接优化

Graphql 图形ql+;继电器连接优化,graphql,relayjs,graphql-js,Graphql,Relayjs,Graphql Js,使用Relay+GraphQL(GraphQL-Relay-js)连接并尝试确定优化数据源查询的最佳方法等 一切都在工作,尽管在分割连接结果时效率很低。在下面的查询示例中,item上的解析器将获得200多条记录以供出售727506341339,而实际上我们只需要返回1条记录 我应该注意到,为了满足此请求,我们实际上进行了两次db查询: 1.获取与销售关联的所有项目ID 2.获取每个项目id的项目数据 在测试和检查graphql继电器js src时,看起来切片发生在最终连接解析器上 除了嵌套连接或

使用Relay+GraphQL(GraphQL-Relay-js)连接并尝试确定优化数据源查询的最佳方法等

一切都在工作,尽管在分割连接结果时效率很低。在下面的查询示例中,item上的解析器将获得200多条记录以供出售727506341339,而实际上我们只需要返回1条记录

我应该注意到,为了满足此请求,我们实际上进行了两次db查询: 1.获取与销售关联的所有项目ID 2.获取每个项目id的项目数据

在测试和检查graphql继电器js src时,看起来切片发生在最终连接解析器上

除了嵌套连接或变异connectionFromArray的切片结果外,是否提供了一种方法,允许我们对提供给连接(项目id)的结果进行切片,然后在连接解析器中根据已切片的id结果集获取项目详细信息?这将优化第二个查询,因此我们只需要查询1个项目的详细信息,而不是所有项目

显然,我们可以实现一些自定义或嵌套连接,尽管这似乎是有用的,因此我觉得我在这里遗漏了一些东西

查询示例:

query ItemBySaleQuery {
    viewer {
      item (sale: 727506341339) {
        items (first:1){
          edges {
            node {
              dateDisplay,
              title
            }
          }             
        }
      }
    }
  }

不幸的是,graphql relay js库中没有记录该解决方案


连接可以使用resolveNode函数直接在边缘节点上工作。示例:

您可以通过我在以下链接中的回答来解决您的问题: