GraphQL中使用orderBy对嵌套对象排序取最新条目报错求助
GraphQL嵌套对象排序报错解决方法
我想对嵌套对象dailyPoolSnapshots的reservesUSD字段按timestamp降序排序,返回最新的第一条数据。我用以太坊主网Curve.fi的subgraph获取池子信息,但几乎不懂GraphQL,文档也晦涩难懂,现在代码运行报错。
我的查询代码:
pools(first: 1000) { name address coins coinDecimals dailyPoolSnapshots(first: 1, orderBy:{field: timestamp, order: DESC}) { reservesUSD timestamp } }
报错信息:
{ "errors": [ { "locations": [ { "line": 0, "column": 0 } ], "message": "Invalid value provided for argument `orderBy`: Object({\"direction\": Enum(\"DESC\"), \"field\": Enum(\"timestamp\")})" } ] }
解决方法
The Graph的subgraph查询语法中,orderBy参数只需传入字段名称,排序方向要通过单独的orderDirection参数指定,不能将字段和方向放在同一个对象里。
修正后的查询代码:
pools(first: 1000) { name address coins coinDecimals dailyPoolSnapshots(first: 1, orderBy: timestamp, orderDirection: DESC) { reservesUSD timestamp } }
内容的提问来源于stack exchange,提问作者EndOfTheGlory
相关产品推荐
相关产品推荐

