Я пытаюсь выполнить запрос, который будет возвращать значения только из вложенных/отношений, которые имеют истинный атрибут в определенном поле.
Я не нашел много информации об этом в виде примеров, и любые хорошие примеры будут оценены.
Я хочу вернуть все schools
, независимо от того, есть у них больные студенты или нет, но если student
имеет sick
значение false
, я бы не хотел, чтобы это возвращалось.
С этим GraphQL - выполнить подзапрос условно
Я смог придумать:
Запрос
query SchoolsSickStudents($sick: Boolean = true) {
schools {
id
rating
name
students @include(if: $sick) {
name
sick
}
}
}
Кажется, возвращаются все ученики.
Полученные результаты:
{
"data": {
"schools": [
{
"id": "1",
"rating": 2,
"name": "School A",
"students": [
{
"name": "Joe",
"sick": true
},
{
"name": "Sally",
"sick": false
}
]
},
]
}
Редактировать:
Я пробовал это также:
query SchoolsSickStudents {
schools {
id
rating
name
students ( where: { sick: {_eq: true}
}) {
name
sick
}
}
}
Источник: https://hasura.io/docs/1.0/graphql/core/queries/query-filters.html#the-where-argument
я получаю
unknown argument on field students of type schools
graphql-ruby
, поэтому я предполагаю, что ваш graphql-сервер реализован с использованием этого? Если это так, пожалуйста, опубликуйте свой рубиновый код. Если нет, вам, вероятно, следует изменить свои теги;) - person hschne   schedule 01.12.2020