问题标签 [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 投票
1 回答
1205 浏览

sanity - 如何在单个查询中填充引用数组

我有一个架构类型 Page ,它有一个块数组:

该类型tileGrid具有以下字段:

所以tile类型嵌套很深page.blocks[].tiles[].tile。如何在同一个查询中查询page和填写tile参考文献?

0 投票
1 回答
106 浏览

sanity - 在 Sanity 中获取给定类型的最后创建文档的 _id

在 Sanity 中,对于名为 的给定文档类型message,我如何获取_id最新的消息文档?

0 投票
1 回答
950 浏览

content-management-system - 无法在 Sanity CMS 中进行搜索查询

我正在尝试使用 Sanity CMS 执行一个非常基本的搜索查询。这就是person我创建的架构的样子:

我输入了两个不同的人员数据。这就是我尝试获取数据的方式:

但是我在控制台中得到一个像这样的空数组:[] 没有错误或任何东西。对这个简单的任务有什么想法吗?

0 投票
1 回答
828 浏览

sanity - 如何将内部连接作为 GROQ 中的条件?

我有一个带有帖子的数据集,其中可能有一个类别数组。

如何进行 GROQ 查询以选择标题为“页面”的类别的所有帖子?

我认为我可以做这样的事情:

我可能需要使用函数在数组内部进行匹配,但是cheetsheet对我来说太密集了 - 我只是找不到它。

我的数据集的要点是:

一个简单的查询:

回报:

0 投票
1 回答
110 浏览

sanity - 如何使用算术运算符计算总和

我有一个包含从 1 到 5review的字段的类型。现在我想计算平均评分。相关架构:ratingnumber

Sanity 最近向 GROQ 添加了算术运算,但我不确定如何使用它们,而且文档很少。

  1. 是否可以使用算术运算来计算所有评分的总和?如果是这样,怎么做?
  2. 您还可以将总和除以同一查询中所有评论的数量吗?
0 投票
1 回答
147 浏览

sanity - 是否可以在 sanity.io 中进行地理空间查询?

我发现 sanity 支持Geopoint 类型,但是如果可以对这种类型进行任何过滤操作,我找不到任何信息。地理空间查询可能吗?

0 投票
1 回答
538 浏览

sanity - 我可以通过 GROQ 查询联系到祖父母吗?

我正在尝试为我的 Sanity.io 项目运行 GROQ 查询,该查询应该过滤掉包含基于祖父母 ID 的引用的子文档。有可能这样做吗?

我已经了解到,对于类似的场景,我可以像这样使用父运算符:

但就我而言,我需要祖父母 ID,因此我无法像现在编写查询那样使用父运算符。

我也可以清楚地阅读文档:

已知问题 ^ 运算符目前仅适用于子查询。在所有其他作用域中,它返回当前作用域的根,而不是父作用域。也不能使用 ^ 来引用祖父母范围。

但没有关于解决方法的信息。

查询当前看起来像这样。我只需要引用团队 ID 的页面。但是现在,使用当前位置(页面)中的引用(^._id),我只从父母(体育)而不是我需要的祖父母(团队)获得参考ID。

在此先感谢,任何帮助都将不胜感激。

0 投票
1 回答
638 浏览

sanity - 使用 GROQ (sanity) (React App) 过滤一组日期 (datetime)

我有一个可以多次放映的电影列表。我决定为用户提供为一部电影选择多个日期的选项(sanity studio 界面)。

电影的架构如下:

当前查询:

我需要使用 GROQ 过滤日期数组中具有今天日期的电影

也许我过于复杂了,有人会想出更好的方法。

这个想法是为了避免数据库中的重复(1部电影可以显示3-6次)。这是我使用数组的唯一原因

0 投票
1 回答
484 浏览

javascript - 在 Sanity.io GROQ 查询中随机排序不起作用?

Sanity.io 太棒了!但是当我刚刚开始时,我还找不到一些我知道的东西,例如 MySQL。根据 GROQ备忘单,我应该能够通过给出以下查询来随机排序和切片(MySQL 中的 LIMIT + OFFSET):

但是,这不会随机排序。该评论也没有意义,因为我希望这只会根据创建时间选择前 10 个项目。

有人知道如何随机排序吗?而且,当我们这样做的时候,我可以用种子随机排序吗?在 MySQLSELECT * FROM your_table ORDER BY RAND(351);中会这样做

0 投票
1 回答
2499 浏览

sanity - 按对象数组中的字段值过滤查询结果 [Sanity.io & GROQ]

我试图在我的产品列表中找到一个产品变体(在 sanity.io 上使用 GROQ),为此,我有我想要的变体的 sku。

我正在使用的查询是 *[_type == "product" && variants[].sku.current =="kit-kat-wasabi-5" ] 但是这个查询返回一个空数组。我确定 sku 是正确的,因为如果我将过滤器放在一边,并获取我能找到的所有内容。我尝试用匹配替换“==”,但结果是一样的。

我的模式是

产品

和productVariant