Graphql复杂布尔查询

时间:2018-12-11 10:40:58

标签: graphql graphql-ruby

我了解您可以搜索的文档中通过graphql查询的原理:

{
  "hero": {
    "name": "R2-D2"
  }
}

但是您想怎么做一些更复杂的事情,例如:

{
  "hero": {
    "name": "R2-D2 AND C-3PO AND BB-8 NOT K-2SO"
  }
}

有什么方法可以传递这样的字符串并获得适当的结果?

1 个答案:

答案 0 :(得分:0)

不,没有。

您可以通读GraphQL spec,了解它的定义和未定义的含义。特别是,规范没有定义任何类型的过滤,任何类型的表达语言或任何类型的布尔组合器。 (没有字段解析器显式添加它,就没有一种本机的方法可以说等效于SQL的WHERE NAME='foo'。)

GraphQL允许字段参数的内容是开放式的,您可以在其之上构建更丰富的查询,但这是特定于某些应用程序或库的。两个突出的示例是GitHub GraphQL API(倾向于允许对选定字段进行精确匹配的查询,但没有更丰富的内容)和Prisma API(具有涉及到的用于复制SQL查询的多级对象方案)。 / p>