首页 > 解决方案 > 如何使用 Groq 显示引用的对象

问题描述

我有一个“成功案例”页面(/cases),当我进入详细信息页面时,我有类似/cases/some-slug 的内容

“案例”模式引用了一个品牌,如下所示:


    {title: 'Case Brand', name: 'caseBrand', type: 'reference',
            to: [
                {type: 'brands'}
            ]
     },

在我找到的所有示例中,我必须将品牌案例联系起来。但是,如果我将每个案例都链接到一个特定的品牌,它会更有用。(另一种我必须附加到品牌的方式,多个案例)。

所以,下面的例子我做了相反的方式(这不方便我构建的结构):

    const getCaseBrand = `*[_type=="cases" && caseSlug.current == "${slug}" ]{
            _id,caseSlug,
            "brand": *[_type =="brands" && references(^._id)]{ 
                _id,
                brandName,
                brandDescription,
                brandLogo
              }
    }`;

知道如何构建我需要的方式吗?基本上是:

太感谢了。

标签: next.jssanitygroq

解决方案


我找到了答案,它比我想象的要简单,只需在主查询中添加一个数组即可。


    *[_type == 'cases' && caseSlug.current == "amazon-prime-india"]
        {...,
       caseBrand -> {
         brandName,
        brandImage
        },
       caseAgency -> {
         agencyName,
        agencyLogo
        }
    
    }

我的模式“案例”已经引用了品牌和代理。所以基本上,我需要做的是以下几点:

  1. 从特定案例中获取所有信息(这是主要查询)
  2. 添加具有引用类型的数组

推荐阅读