You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用GraphQL API查询两个用户的共同好友

共同好友GraphQL查询实现方案

基础结论

完全不依赖底层服务特殊功能、不使用子查询/嵌套过滤器的前提下,无法直接通过GraphQL单次查询得到共同好友结果。原生GraphQL仅支持字段级别的关联请求,没有内置集合交集计算能力,这种场景只能先分别拉取两个用户的好友列表,在客户端做交集计算。

如果允许使用通用GraphQL服务提供的基础过滤能力,可通过单次查询直接得到结果。


方案1:无服务端依赖的客户端计算实现

先发起查询同时拉取两个用户的全量好友列表:

query GetBothUsersFriends {
  user01: person(id: "01") {
    friends {
      id
      name
    }
  }
  user02: person(id: "02") {
    friends {
      id
      name
    }
  }
}

拿到返回结果后,筛选同时存在于user01.friends和user02.friends数组中的Person对象,即为共同好友。


方案2:支持过滤能力的服务端直接查询

对于支持嵌套字段过滤的通用GraphQL服务,可直接通过以下查询拿到结果:

query GetCommonFriends {
  # 筛选用户01的好友中,自身好友列表包含用户02的人
  person(id: "01") {
    friends(where: { friends: { id: { _eq: "02" } } }) {
      id
      name
    }
  }
}

该查询逻辑等价于:找到同时和01、02存在好友关联的Person实例,也就是两个用户的共同好友。

内容的提问来源于stack exchange,提问作者Jonathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:24:01