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

Graphcool(GraphQL):如何对ID数组执行精确过滤?

解决精确匹配Chat用户集合的问题

你的问题出在users_every: { id_in: ["123", "234", "345"] }这个过滤条件上——它只检查聊天中的所有用户ID都存在于目标数组中,但不会限制聊天的用户数量。所以那个仅包含["123", "234"]的聊天也会被匹配到,因为这两个用户的ID确实都在你指定的三人数组里。

要实现ID数组的精确过滤,你需要同时添加两个条件:

  1. 限制聊天的用户数量恰好等于目标数组的长度(这里是3)
  2. 确保聊天中的所有用户ID都在目标数组内

下面是修正后的查询:

query {
  allChats(filter:{
    users_count: { equals: 3 },
    users_every: { id_in: ["123", "234", "345"] }
  }){
    id
    users{ id }
  }
}

逻辑说明:

  • users_count: { equals: 3 }会先筛选出恰好有3个用户的聊天,直接排除掉用户数量不足3的两人聊天
  • 再通过users_every: { id_in: [...] }验证这3个用户的ID都属于目标数组,确保没有额外的无关用户

这样就能精准定位到包含且仅包含["123", "234", "345"]这三个用户的群聊了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:32:44