首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较GROQ中的数组

如何比较GROQ中的数组
EN

Stack Overflow用户
提问于 2022-03-01 10:38:30
回答 1查看 188关注 0票数 1

我有一个博客与理智CMS,我想要求相关的文章,根据相应的标签,从当前的帖子,这意味着我必须比较两个标签数组。

我的标记在post模式中是这样描述的:

代码语言:javascript
复制
{
  name: 'tags',
  title: 'Tags',
  type: 'array',
  of: [{type: 'string'}],
  options: {
    layout: 'tags'
  }
},

我使用了下面的GROQ查询,这是一个很好的开始,但显然它不起作用:

代码语言:javascript
复制
*[_type == "post" && slug.current == $slug][0] {
  title,
  tags,
  "sameTags": *[_type == "post" && slug.current != $slug && count(tags in ^.tags) > 0]
}

我要把我的问题翻译成:“我想得到相关的帖子,这些帖子有不同的段塞,并且至少有一个标签属于当前的帖子。”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-01 13:26:25

计数技巧应该有效,但是由于要比较多个标记和多个标记,所以需要对它们进行迭代:

代码语言:javascript
复制
count(tags[@ in ^.^.tags]) > 0

换句话说,它根据每个标签是否出现在另一个列表中过滤标签。这里应该需要额外的^.,因为过滤器引入了一个新的作用域。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71307161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档