Могу ли я связаться с бабушкой и дедушкой по запросу GROQ? - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь выполнить запрос GROQ для моего проекта Sanity.io, который должен отфильтровывать дочерние документы, содержащие ссылки, на основе идентификатора бабушки и дедушки.Возможно ли это сделать?

Я пришел к выводу, что для подобных сценариев я мог бы использовать родительский оператор, например, так:

references(^._id)

Но в моем случае мне нуженидентификатор дедушки, поэтому я не могу использовать родительский оператор так, как я написал запрос сейчас.

Я также могу четко прочитать в документации:

Известная проблемаОператор ^ в настоящее время работает только из подзапросов.Во всех других областях он возвращает корень текущей области, а не родительскую область.Также невозможно использовать ^ для ссылки на области дедушки и бабушки.

Но нет информации об обходном пути.

Запрос в настоящее время выглядит следующим образом.Мне нужны только страницы, которые относятся к идентификатору команды.Но сейчас, используя ссылки (^ ._ id) в текущей позиции (страницы), я получаю ссылочный идентификатор только от родителя (спорт), а не от деда (команды), который янужно.

*[_type == 'client' && alias == 'ipsum']{
    _id, name, teams[]->{
        _id, name,
        sports[]->{
            name,
            "pages": *[_type=='page' && references(^.id)]
        }
    }
}

Заранее спасибо, любая помощь будет весьма признательна.

...