Я пытаюсь выполнить запрос GROQ для моего проекта Sanity.io, который должен отфильтровывать дочерние документы, содержащие ссылки, на основе идентификатора бабушки и дедушки.Возможно ли это сделать?
Я пришел к выводу, что для подобных сценариев я мог бы использовать родительский оператор, например, так:
references(^._id)
Но в моем случае мне нуженидентификатор дедушки, поэтому я не могу использовать родительский оператор так, как я написал запрос сейчас.
Я также могу четко прочитать в документации:
Известная проблемаОператор ^ в настоящее время работает только из подзапросов.Во всех других областях он возвращает корень текущей области, а не родительскую область.Также невозможно использовать ^ для ссылки на области дедушки и бабушки.
Но нет информации об обходном пути.
Запрос в настоящее время выглядит следующим образом.Мне нужны только страницы, которые относятся к идентификатору команды.Но сейчас, используя ссылки (^ ._ id) в текущей позиции (страницы), я получаю ссылочный идентификатор только от родителя (спорт), а не от деда (команды), который янужно.
*[_type == 'client' && alias == 'ipsum']{
_id, name, teams[]->{
_id, name,
sports[]->{
name,
"pages": *[_type=='page' && references(^.id)]
}
}
}
Заранее спасибо, любая помощь будет весьма признательна.