如何按Graphql查询结果分组

时间:2018-09-18 10:59:43

标签: graphql graphql-java

我有以下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"
          }
      ]
    ]
  }
}

1 个答案:

答案 0 :(得分:1)

您所描述的是应该在客户端发生的事情,或者是让您的查询类型接收用于返回propper类的名称选项的东西,那么下面的查询将适用于您需要的条件(假设它是能够查询查询数据的名称

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