Graphql复杂布尔查询



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

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

但是你想做一些更复杂的事情怎么样,比如:

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

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

不,没有。

您可以通读GraphQL规范,看看它定义了什么和没有定义什么。特别是,该规范没有定义任何类型的过滤、任何类型的表达式语言或任何类型的布尔组合子。(如果没有字段解析程序显式添加,就无法用本机方法来表示SQL的WHERE NAME='foo'。(

GraphQL允许字段参数是开放的,因此您可以在此基础上构建更丰富的查询,但这对于某些应用程序或库来说是非常特定的。两个突出的例子是GitHub GraphQL API(它倾向于允许对所选字段进行精确匹配查询,但没有更丰富的查询(和Prisma API(它有一个涉及的多层次对象方案来复制SQL查询(。

最新更新