【发布时间】:2019-02-22 09:37:14
【问题描述】:
我有以下 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"
}
]
]
}
}
【问题讨论】:
-
您实现过目标吗?我正在尝试做类似的事情,以便在 Grafana 中更轻松地使用数据。
-
是的,我通过转换查询类型和关联的类对象来管理它。 @Austio 也提出了类似的建议。
-
事实上,我在服务器端 (API) 和 Clint 端 (Vuejs) 过滤/分组等查询类型转换都与 Underscore.js 库一起使用。根据给定的场景,如果 API 返回的数据需要预先格式化,或者我们可以只返回平面类型的 ov 结构,客户端将根据需要进行格式化。
标签: graphql graphql-java