0

我一直在尝试优化我的 groq 查询。

我有包含数组对象(不同语言)的页面内容。

我一直在使用 Sanity Vision 来查看如何过滤输出,以便只获得正确语言的内容。

//query
*[_type == "home"]{
  content[]{
    "language": metaData.language ->.language,
  },
}

// query result
"result":[
  0:{
    "content":[
      0:{
        "language":"en-AU"
      }
      1:{
        "language":"th-TH"
      }
    ]
  }
]

我只想获得与语言匹配的 1 个内容。我试过了,但没有用

*[_type == "home"]{
  content[]{
    ...,
    "language": metaData.language ->.language,
  },
}[0][content[].language == "en-AU"]

有谁知道怎么做?

谢谢!

4

1 回答 1

0

终于找到答案了

我意识到返回数据中有一个数组,您可以使用另一个 [] 进一步过滤它,在这种情况下 [metaData.language->.language match $language]


  *[_type == "home"]{
    content[metaData.language->.language == $language]{
      ...,
      metaData {
        ...,
        language->
      }
    }[0]
  }[0]
于 2021-12-24T22:47:32.733 回答