【发布时间】:2019-03-13 02:48:11
【问题描述】:
我一直在研究 GraphQL 并触发查询以将 JSON 响应获取到 react 应用程序中。
但我需要触发一个查询,它将返回列中的最大值和最小值。
我已经浏览了 GraphQL 的文档,但没有找到实现此目的的方法。
{
schneider(where: {_and: [{device_time: {_gte: "2018-09-04T20:11:42.097+05:30"}}, {device_time: {_lte: "2018-09-04T20:12:43.187+05:30"}}]}) {
active_energy_received
}
}
上述查询为我提供了两个提供日期之间的值列表。
{
"data": {
"schneider": [
{
"active_energy_received": 0
},
{
"active_energy_received": 0
},
{
"active_energy_received": 0
},
{
"active_energy_received": 0
},
{
"active_energy_received": 0
},
{
"active_energy_received": 0
},
{
"active_energy_received": 0
},
{
"active_energy_received": 0
},
{
"active_energy_received": 0
},
{
"active_energy_received": 0
},
{
"active_energy_received": 4.3699998856
},
{
"active_energy_received": 0.82099998
},
{
"active_energy_received": 0.82099998
},
{
"active_energy_received": 4.3699998856
},
{
"active_energy_received": 0.82099998
},
{
"active_energy_received": 4.3699998856
},
{
"active_energy_received": 0.82099998
},
{
"active_energy_received": 4.3699998856
},
{
"active_energy_received": 0.82099998
},
{
"active_energy_received": 4.3699998856
},
{
"active_energy_received": 0.82099998
},
{
"active_energy_received": 4.3699998856
},
{
"active_energy_received": 0
},
{
"active_energy_received": 0.820999979972839
},
{
"active_energy_received": 4.3699998856
}
]
}
}
现在,我只想要此列表中的最大值和最小值,而不是所有值。
更新:
我正在使用 hasura.io 和 postgreSQL。
【问题讨论】:
-
也许您可以为这个特殊用例定义一个自定义参数?像
schneider(where: ..., onlyFirstAndLast: true)这样的东西。然后它将使用where的结果并执行一些仅返回索引0 和索引n-1 的自定义逻辑。不知道hasura是否可以这样做
标签: graphql express-graphql hasura