如何在单个查询中获取多个文档?GROQ代码报错求助
解决GROQ单查询获取多页面slug的问题
你当前的GROQ查询语法有误——把三个独立的文档查询放在了对象字面量{}里,这不符合GROQ的语法规则,会触发解析错误。以下是两种可行的修正方案:
方案1:按页面类型分组返回slug数组
将查询用数组[]包裹,结果会是一个包含三个子数组的结构,每个子数组对应一种页面类型的slug集合:
const pagesQuery = groq`[ *[_type == 'homepage']{slug}, *[_type == 'faq']{slug}, *[_type == 'contact']{slug} ]`
方案2:返回合并后的扁平结果
如果需要把所有页面的slug合并成一个列表,同时可选择保留页面类型信息,推荐用in运算符简化查询:
带页面类型的完整信息
const pagesQuery = groq` *[_type in ['homepage', 'faq', 'contact']]{ _type, slug } `
仅扁平slug数组
const pagesQuery = groq` *[_type in ['homepage', 'faq', 'contact']].slug `
内容的提问来源于stack exchange,提问作者Burger Sasha
相关产品推荐
相关产品推荐

