我有一个GraphQl API用于列出一堆项目,我可以完美地查询它等等。 但现在我想查询该列表的一个子集,其中一个属性可以具有“除一个特定值之外的所有可能值”。
例如,我想查询这样的内容:
{
items(status: !"Unwanted"){
id
}
}
这个感叹号显然不起作用,但它说明了我所追求的。 在网上找不到任何关于此的信息。
有人知道这样做的方法吗? 我真的很讨厌必须枚举所有可能的值,而不是只排除一个不需要的值。这将是非常糟糕的设计,并且不具备可扩展性。
感谢。
答案 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
}
}