【发布时间】:2019-11-14 23:22:47
【问题描述】:
我正在尝试为我的 Sanity.io 项目运行 GROQ 查询,该查询应该过滤掉包含基于祖父母 ID 的引用的子文档。有可能吗?
我了解到,对于类似的场景,我可以像这样使用父运算符:
references(^._id)
但就我而言,我需要祖父母 ID,因此我无法像现在编写查询那样使用父运算符。
在文档中我也能看得很清楚:
已知问题 ^ 运算符目前仅适用于子查询。在所有其他作用域中,它返回当前作用域的根,而不是父作用域。也不能使用 ^ 来引用祖父作用域。
但没有关于解决方法的信息。
查询当前如下所示。我只需要引用团队 ID 的页面。但是现在,使用当前位置(页面)中的 references(^._id) ,我只从父级(体育)而不是祖父级(团队)获取参考 id我需要。
*[_type == 'client' && alias == 'ipsum']{
_id, name, teams[]->{
_id, name,
sports[]->{
name,
"pages": *[_type=='page' && references(^.id)]
}
}
}
在此先感谢,任何帮助将不胜感激。
【问题讨论】:
-
Sport和Page之间的架构中是否存在任何关系?