问题标签 [groq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
342 浏览

javascript - 如何定义 NOT 是 sanity.io 结构构建器?

我正在尝试过滤所有没有类别的产品(这是参考数组)并且找不到如何做到这一点。

!category不工作。我将不胜感激。

0 投票
1 回答
122 浏览

sanity - Groq:加入文档字段

我有一个读取如下内容的架构:页面(文档)有一个项目数组(对象);每个 Item 可以有一个 Post(文档);每个帖子都有几个标签(文档)。

我已经完成了大部分的钻取工作,但由于某种原因,我无法完全解决标签上的连接问题。这是我的架构的简要介绍:

这是我的工作查询......</p>

...所以我已经弄清楚如何查询对象数组以及如何查询引用文档,但我似乎无法桥接查询引用文档数组。有什么线索吗?

0 投票
1 回答
551 浏览

sanity - 解决 Sanity.io 中块内容中的引用

我在理智中有这样的内容块:

当进行类似的查询时

我得到了参考,但我想返回完整的文档。我尝试了每种方法,但文档仅解释了内容块之外的引用,并且这些方法不起作用。

这是查询返回的内容:

0 投票
1 回答
276 浏览

sanity - 是否可以在 Sanity/GROQ 中查询文档模式元数据?

我在我的 Sanity/NextJS 项目中定义了一个简单的单例文档模式,用于模拟我的“Colophon”页面(richText是自定义块字段类型):

我在 NextJS 应用程序中通过一个简单的查询来检索此文档:

是否可以编写一个 GROQ 查询来检索模式中定义的元标题,即Colophon?虽然这是一个单例文档,但如果可能的话,我想避免在我的项目中重复这个字符串。目前,我只能在结果中看到文档上的字段,即body.

谢谢阅读!

0 投票
2 回答
1746 浏览

content-management-system - Sanity.io GROQ 查询对象数组

我正在学习编码,现在我正处于一个以 Sanity 作为 CMS 的小型宠物项目的阶段。长话短说,制作一个 API 我正在尝试通过鸡尾酒投票来获取鸡尾酒数据。投票存储在投票的人中:

GROQ 查询

返回

如您所见,合并提供了嵌入式投票数组,同时我想要这样的东西:

试图得到这个我修改了查询:

这应该从投票 arr 的每个元素中进行预测。不幸的是,我得到了空数组:

我怎样才能达到预期的效果?感谢您的阅读!将不胜感激任何帮助!

0 投票
2 回答
564 浏览

sanity - 如何获取所有文档中的最新文档

在 sanity studio 中,您会获得一份包含所有文档的最新版本的漂亮列表。如果有草稿,你会得到它,如果没有,你会得到出版的。

对于一些过滤器和脚本,我需要相同的列表。以下 groq 完成了这项工作,但速度不是很快,并且在新 API (v2021-03-25) 中不起作用。

绕过 API 中的重大更改的一种方法是使用length() = 0代替,!defined()但这会使已经很慢的查询慢 10-20 倍。

有谁知道制作只考虑最新版本的过滤器的方法?

编辑:我需要这个的一个例子是,如果我想查看没有任何类别的所有文档。无论是已发布文档还是没有类别的草稿,它都会显示在普通过滤器中。因此,如果您添加类别但不想立即发布它会在 no-categories-list 中造成混淆。,'-)

0 投票
2 回答
578 浏览

sanity - Sanity io 显示作者的博客文章

我正在学习 Sanity io CMS 和 GROQ。我使用 Sanity 预定义的博客模式构建了一个简单的博客。我已经设法显示帖子、单个帖子和作者页面,显示名称、图像和简历。

我想做的是在他的页面中显示属于作者的博客文章列表。在帖子架构中有对作者的引用:

我试图post在作者模式中添加一个数组引用,但结果是在 CMS 中我需要手动向作者添加帖子。同时,我想查询作者并返回属于作者的帖子,因为帖子架构中有对它的引用,但找不到如何去做。它可能更像是一个 GROQ 查询而不是模式问题,还是两者兼而有之?

0 投票
1 回答
132 浏览

next.js - 如何使用 Groq 显示引用的对象

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

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

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

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

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

  • 根据“案例”模式的引用获取caseBrand对象。
  • 我将在个别案例页面中显示品牌名称和徽标。

太感谢了。

0 投票
1 回答
148 浏览

next.js - sanity-algolia 在使用 pt::text 时出错

我正在尝试使用 sanity-algolia 库将 algolia 搜索与 sanity CMS 集成(参考https://www.sanity.io/plugins/sanity-algolia

但是当我尝试使用 pt::text 函数从便携式文本富文本内容中获取纯文本时。我明白expected '}' following object body了,我真的不知道我在哪里缺少括号。

(另一个注意事项:由于我通过 using 托管sanity startsanity,所以我使用 nextjs(我的前端)来运行该函数,而不是使用 nextJS 中的 /api 路由)所以 sanity 有一个到此路由的 webhook。

有关错误的详细信息:

这是我正在运行的无服务器功能:

和我理智的帖子架构:

0 投票
1 回答
156 浏览

reactjs - 如何使用 react.js 过滤 sanity.io 中的 API 数据?

您好,我是社区的新手,正在学习这里的工作方式。请尝试通过我蹩脚的英语来理解。

假设 API 中有 200 个数据,但我只想将任意 4 个随机数据拉到前端。更清楚地说,这些数据是来自sanity.io的博客文章,在 React.js中使用了 groq ql。这是显示来自 API 的所有数据的代码。我尝试过slice功能但没有奏效。