如何通过GraphQL查询去除返回结果中的重复ID?
GraphQL 查询能否过滤重复ID?
GraphQL本身没有内置的去重语法或指令,没法直接通过查询语句让服务端返回去重后的结果,不过有两种可行的处理方式:
- 服务端改造:如果你能控制GraphQL服务端的 resolver 逻辑,可以在处理
y.nodes的 resolver 里加去重逻辑——比如用集合(Set)记录已经出现过的ID,遍历数组时只保留首次出现的元素,再返回给客户端。 - 客户端处理:如果没法改服务端,就只能拿到响应后在客户端自己做去重。比如用JavaScript的话,可以这么写:
// 基于ID去重,保留每个ID的第一个实例 const uniqueNodes = [...new Map(response.data.x.y.nodes.map(node => [node.id, node])).values()];
内容的提问来源于stack exchange,提问作者uniQ
相关产品推荐
相关产品推荐

