在 GraphQL 中,我们可以通过一些参数来过滤我们的查询结果,其中字符串类型是最常用的之一。本文将介绍 GraphQL 中字符串类型的过滤条件,并为大家提供实用的示例代码。
字符串类型参数
当我们想查询一个字符串字段时,我们可以在 GraphQL 查询中添加以下参数:
eq
:等于指定字符串。ne
:不等于指定字符串。in
:匹配一个包含在指定字符串数组中的字符串。nin
:不匹配任何一个在指定字符串数组中的字符串。regex
:根据指定正则表达式匹配字符串。
示例代码
假设我们有以下 schema:
type Book { title: String! author: String! genre: String! }
我们可以使用以下查询来查询 title
为 "Harry Potter"
的书籍:
{ books(filter: {title: {eq: "Harry Potter"}}) { title author genre } }
如果我们想查询所有不是 "Harry Potter"
的书籍,只需要修改 eq
为 ne
:
{ books(filter: {title: {ne: "Harry Potter"}}) { title author genre } }
如果我们想查询所有 genre
是 "fantasy"
或 "science fiction"
的书籍,可以使用 in
:
{ books(filter: {genre: {in: ["fantasy", "science fiction"]}}) { title author genre } }
如果我们想查询所有 genre
不是 "fantasy"
或 "science fiction"
的书籍,可以使用 nin
:
{ books(filter: {genre: {nin: ["fantasy", "science fiction"]}}) { title author genre } }
如果我们想查询所有 title
包含 "Harry"
的书籍,可以使用 regex
:
{ books(filter: {title: {regex: "/Harry/"}}) { title author genre } }
总结
通过 GraphQL 中的字符串类型参数,我们可以轻松地过滤我们的查询结果。希望本文能够帮助你更好地理解 GraphQL 中字符串类型参数的使用,并在实际开发中得到应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6459c0a4968c7c53b0bddbba