首页 > 解决方案 > 如何按 Graphql 查询结果分组

问题描述

我有以下 GraphQL 查询

query {
  Result: querydata {
    name
    code
    description
  }
}

这将返回以下数据

{
  "data": {
    "Result": [
      {
        "name": "Class1",
        "code": "ST1",
        "description": "Value"
      },
      {
        "name": "Class1",
        "code": "ST2",
        "description": "Value"
      },
      {
        "name": "Class2",
        "code": "FS1",
        "description": "Value"
      },
      {
        "name": "Class2",
        "code": "FS2",
        "description": "Value"
      }
    ]
  }
}

在此数据中,我有一个名称字段,即“Class1”或“Class2”。我不想以可以将 Class1 和 Class2 数据分开的方式对这些数据进行分组。有没有办法做到这一点。我可以通过提供名称过滤器运行 2 个单独的查询来实现这一点,但可以说我没有那个选项。

我想将结果转换如下

{
  "data": {
    "Result": [
      "Class1": [
          {
            "code": "ST1",
            "description": "Value"
          },
          {
            "code": "ST2",
            "description": "Value"
          }
      ]

      "Class2": [
          {
            "code": "FS1",
            "description": "Value"
          },
          {
            "code": "FS2",
            "description": "Value"
          }
      ]
    ]
  }
}

标签: graphqlgraphql-java

解决方案


您所描述的是应该在客户端发生的事情,或者允许您的查询类型接收您用来返回propper类的名称选项,然后下面的查询将适用于您需要的内容,假设它能够查找查询数据的名称

query {
  Class1: querydata(name: "Class1") {
    code
    description
  }
  Class2: querydata(name: "Class2") {
    code
    description
  }
}

推荐阅读