如何过滤比GraphQL更大的过滤

时间:2017-08-14 12:20:31

标签: graphql

type Person {
    firstName: String!,
    lastName: String!,
    age: Int!
}

如何查询所有18岁以上的人?

3 个答案:

答案 0 :(得分:3)

这可能取决于您使用的后端,例如在graph.cool中你可以这样:

query {
  allPersons(filter: {
    age_gt: 18
  }) {
    firstName
    lastName
  }
}

有关过滤的更多文档,请参阅此处: https://www.graph.cool/docs/reference/graphql-api/query-api-nia9nushae#explore-available-filter-criteria

答案 1 :(得分:1)

如果您使用Prisma作为后端,则可以使用大于运算符(_gt),如下所示:

query {
  persons(where: {age_gt: 18}) {
    firstName
    lastName
    age
  }
}

您还可以使用其他运算符,例如:

  • _gt(大于)
  • _lt(小于)
  • _gte(大于或等于)
  • _lte(小于或等于)
  • _in(等于)
  • _not_in(不等于)

它们与任何数据类型(如整数,浮点数,双精度,文本,布尔值,日期等)兼容。

答案 2 :(得分:0)

Hasura

query {
  article(
    where: {rating: {_gte: 4}}
  ) {
    id
    title
    rating
  }
}

Prisma

query {
  posts(where: {
    AND: [{
      title_in: ["My biggest Adventure", "My latest Hobbies"]
    }]
  }) {
    id
    title
  }
}

建议 不要直接/独立使用graphql,与上面的orm一起使用