GraphQL 条件查询
GraphQL Conditional Queries
我是 GraphQL 的新手,我想知道是否有一种使用 "dynamic conditions".
进行查询的简单方法
例如,在 GraphiQL 上我可以查询:
query {
users{
name
age
}
}
它会给我一个所有用户的列表
{
"data": {
"users": [
{
"name": "Luis Coimbra",
"age": 15
},
{
"name": "Sebastião Campagnucci",
"age": 50
},
{
"name": "Giovana Ribeiro",
"age": 30
}
]
}
}
但是有没有一种简单的方法可以让我只带来,例如,18 岁以上或任何其他年龄的用户?
预期的解决方案是:
query {
users{
name
age > 18
}
}
没有在文档中找到类似的内容...
这是可能的——它必须有所不同。您的查询不是有效的 GQL 查询。这样的事情会:
{
users(where: {age: { $gt: 18 }}){ #inspired by mongoDB query api
name
age
}
}
或者更简单:
{
users(where: {age: ">18"}}){
name
age
}
}
当然,无论哪种方式,后端的解析器都需要在 users
字段上期待这个 where
参数,并在传递时相应地构造数据库查询。你不会在 GraphQL 文档中找到这个,因为 GraphQL 本身并不关心这个。它只展示了如何使用 GraphQL 的功能。
如果您尝试过示例项目,例如 star was api,这些项目没有内置任何过滤功能。
您应该发送您的年龄过滤器,因为 parameter.You 可以尝试以下过滤器:
在你的 graphql 文件中
type users {
name: String,
age: Int,
...
}
usersQuery(ageLimit: Int): [users]
您也可以发送 '>' 、 '<' 、 '=' 作为参数。好像也是这样
usersQuery(ageLimit: Int, ageOperator: String): [users]
并且您应该使用这些运算符配置您的解析器 where 语句。希望对你有帮助。
我是 GraphQL 的新手,我想知道是否有一种使用 "dynamic conditions".
进行查询的简单方法例如,在 GraphiQL 上我可以查询:
query {
users{
name
age
}
}
它会给我一个所有用户的列表
{
"data": {
"users": [
{
"name": "Luis Coimbra",
"age": 15
},
{
"name": "Sebastião Campagnucci",
"age": 50
},
{
"name": "Giovana Ribeiro",
"age": 30
}
]
}
}
但是有没有一种简单的方法可以让我只带来,例如,18 岁以上或任何其他年龄的用户?
预期的解决方案是:
query {
users{
name
age > 18
}
}
没有在文档中找到类似的内容...
这是可能的——它必须有所不同。您的查询不是有效的 GQL 查询。这样的事情会:
{
users(where: {age: { $gt: 18 }}){ #inspired by mongoDB query api
name
age
}
}
或者更简单:
{
users(where: {age: ">18"}}){
name
age
}
}
当然,无论哪种方式,后端的解析器都需要在 users
字段上期待这个 where
参数,并在传递时相应地构造数据库查询。你不会在 GraphQL 文档中找到这个,因为 GraphQL 本身并不关心这个。它只展示了如何使用 GraphQL 的功能。
如果您尝试过示例项目,例如 star was api,这些项目没有内置任何过滤功能。
您应该发送您的年龄过滤器,因为 parameter.You 可以尝试以下过滤器:
在你的 graphql 文件中
type users {
name: String,
age: Int,
...
}
usersQuery(ageLimit: Int): [users]
您也可以发送 '>' 、 '<' 、 '=' 作为参数。好像也是这样
usersQuery(ageLimit: Int, ageOperator: String): [users]
并且您应该使用这些运算符配置您的解析器 where 语句。希望对你有帮助。