获取文件

Fetching documents

我使用 Sanity Studio 在一个简单的模式“用户”(结构并不那么重要)中创建了 2 个文档,然后用一些值更新了每个文档,并发布了。

正在尝试使用查询获取结果:

*[_type=="users"]

我得到了 4 个,而不是 2 个文档,而且似乎每次更新都创建了一个新的修订版,并且所有文档的所有修订版都被返回了。

Sanity 的编辑每次都是这样吗?如果是这样,我如何才能获得包含所有最新更改的 2 个文档?

听起来您可能同时获得了每个文档的发布版本和草稿版本。草稿将与已发布的文档具有相同的 _id,但将以 drafts..

作为前缀

如果您将查询修改为以下内容,这可能会更清楚一些,这将 return 一个 _ids:

的数组
*[_type=="users"]._id

如果确实如此,您可以修改查询以排除草稿:

*[_type=="users" && !(_id in path("drafts.**"))]

这里还有一些 detail about drafts

@Geoff 的回答是正确的,但是如果有人一开始就不关心跟踪草稿(我的情况),我找到了一种更好的方法来做到这一点。您可以指定一个

liveEdit: true

架构类型上的标志,在这种情况下根本不会跟踪此类型的草稿