GraphQL "not equal" 运算符?

GraphQL "not equal" operator?

我有一个 GraphQl API 用于列出一堆项目,我可以完美地查询它等等。 但现在我想查询该列表的一个子集,其中一个 属性 可以有 'all possible values except one specific one'.

比如我想查询这样的东西:

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

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

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

谢谢。

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

如果服务器 API 已修复,除了获取所有内容并在客户端上进行过滤外,您无能为力。

使用ne

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

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

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