如何在GraphQL中将多个对象作为数组返回

时间:2018-07-05 07:40:20

标签: graphql

我想查询graphql中的对象数组。

我尝试过类似的事情:

{
    imageSharp(id: {regex: "/whales/"}) {
        data: [
            resize(width: 300, height: 800 ) {
                src
                width
            },
            resize(width: 400, height: 1000 ) {
                src
                width
            },
            resize(width: 500, height: 1200 ) {
                src
                width
            }
        ]
    }
}

是否可以或者应该为每个对象写一个单独的名称

{
  imageSharp(id: {regex: "/whales/"}) {
    data1: resize(width: 300, height: 800) {
      src
      width
    }
    data2: resize(width: 400, height: 1000) {
      src
      width
    }
    data3: resize(width: 500, height: 1200) {
      src
      width
    }
  }
}

2 个答案:

答案 0 :(得分:0)

您可以显示您的模式如何构建吗? 如果您的架构仅支持返回一个对象,那么您将需要进行多个查询。但是您的服务器可能支持批量查询。然后,您将避免对服务器的多次请求。 https://dev-blog.apollodata.com/query-batching-in-apollo-63acfd859862

答案 1 :(得分:0)

您无法像第一个示例那样查询数组, 但是从我看来,您想基于不同的过滤器将单个“调整大小”结果检索到单个数组中,

执行此操作的唯一可能方法是为不同的过滤器选项(如第二个查询示例)提供别名,然后将其放置在几个数组中,

或更改“调整大小”解析器上的过滤器对象以检索宽度,高度的数组,从而将结果返回到单个数组中