Я использую GraphQL для запроса к базе данных, имеющей два типа данных: User
и Group
.
Группы имеют поле users
, которое представляет собой массив User
объектов, которые в этой группе. У меня есть одно поле на root с именем groups
, которое возвращает массив всех моих групп.
Типичный запрос может выглядеть примерно так:
{
groups {
id,
name,
users {
id,
name,
address,
email,
phone,
attitude,
job,
favoriteQuote,
favoriteColor,
birthday
}
}
}
Проблема в том, что многие из этих пользователей могут принадлежать к нескольким группам, и, учитывая, что User
имеет много полей, это может сделать ответы довольно большими.
Есть ли способ получить один набор полей для первый экземпляр объекта и другой набор для каждого другого экземпляра в ответе?
Мне нужно только name
, job
, email
et c et c один раз на пользователя в ответе, и только id
после этого (впоследствии я могу сделать свою собственную нормализацию).
альтернативно
Есть ли способ получить только id
поля для всех пользователей в группах и вернуть отдельный массив всех уникальных User
объектов, на которые есть ссылки в запросе (что не является all User
объектами)?