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

如何正确使用GraphQL查询变量搜索匹配多个兴趣标签的用户

问题原因

  • 查询变量的JSON结构存在同键名覆盖问题:JSON对象中不允许出现重复键,你定义tagList时重复写了两次_eq,后面的"_eq": "apple"会直接覆盖前面的"_eq": "dog",导致dog的匹配条件直接丢失
  • 查询中的_or逻辑写法错误:你将整个$tagList放在单个tag过滤条件中,无法实现多标签的或匹配逻辑

解决方案

推荐使用_in操作符实现多标签匹配,写法更简洁,兼容性也更好,只需修改两处代码即可:

修改后的GraphQL查询

users(offset: $offset, limit: 30, order_by: {lastRequest: asc}, where: {dob: {_gte: $fromDate, _lte: $toDate}, interestTagsFromSenderId: {tag: {_in: $tagList}}}) {
  id
  displayName
  profilePhotoUrl
  dob
  bio
  location
  interestTags: interestTagsFromSenderId {
    tag
  }
  created_at
}

修改后的查询变量

{
  "offset": 0,
  "fromDate": "1999-07-01",
  "toDate":  "2024-01-01", 
  "tagList": ["dog", "apple"]
}

说明

_in操作符会自动匹配字段值是否属于给定的数组范围,天然支持多值的或逻辑,不需要额外嵌套_or条件。如果你的GraphQL服务端不支持_in操作符,也可以手动展开_or条件:

interestTagsFromSenderId: {_or: [{tag: {_eq: $tag1}}, {tag: {_eq: $tag2}}]}

对应查询变量增加tag1、tag2两个字符串变量即可,不过这种方式不适合标签数量不固定的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 21:39:03