GraphQL“不等于”运算符?

时间:2016-04-08 11:11:57

标签: graphql

我有一个GraphQl API用于列出一堆项目,我可以完美地查询它等等。 但现在我想查询该列表的一个子集,其中一个属性可以具有“除一个特定值之外的所有可能值”。

例如,我想查询这样的内容:

{
  items(status: !"Unwanted"){
    id
  }
}

这个感叹号显然不起作用,但它说明了我所追求的。 在网上找不到任何关于此的信息。

有人知道这样做的方法吗? 我真的很讨厌必须枚举所有可能的值,而不是只排除一个不需要的值。这将是非常糟糕的设计,并且不具备可扩展性。

感谢。

3 个答案:

答案 0 :(得分:8)

使用ne

{
  items(filter: {status: {ne: "Unwanted"}}){
    id
  }
}

答案 1 :(得分:7)

如果您可以定义架构(实现服务器),那么您可以向statusExcept字段添加第二个参数,如items。然后在resolve方法中检查是否已设置status或statusExcept并根据该项传递项目。

服务器API已修复,除了获取所有内容并在客户端上进行过滤外,您无需做任何事情。

答案 2 :(得分:-1)

使用GraphQL版本4.3.2的语法已更改,您将需要使用notIn

{
  items(filter: {status: {notIn: "Unwanted"}}){
    id
  }
}