我有一个博客与理智CMS,我想要求相关的文章,根据相应的标签,从当前的帖子,这意味着我必须比较两个标签数组。
我的标记在post模式中是这样描述的:
{
name: 'tags',
title: 'Tags',
type: 'array',
of: [{type: 'string'}],
options: {
layout: 'tags'
}
},我使用了下面的GROQ查询,这是一个很好的开始,但显然它不起作用:
*[_type == "post" && slug.current == $slug][0] {
title,
tags,
"sameTags": *[_type == "post" && slug.current != $slug && count(tags in ^.tags) > 0]
}我要把我的问题翻译成:“我想得到相关的帖子,这些帖子有不同的段塞,并且至少有一个标签属于当前的帖子。”
发布于 2022-03-01 13:26:25
计数技巧应该有效,但是由于要比较多个标记和多个标记,所以需要对它们进行迭代:
count(tags[@ in ^.^.tags]) > 0换句话说,它根据每个标签是否出现在另一个列表中过滤标签。这里应该需要额外的^.,因为过滤器引入了一个新的作用域。
https://stackoverflow.com/questions/71307161
复制相似问题