Sanity新添加的字段不会显示在查询中



我正在使用健全性创建一个web应用程序。我在帖子架构中添加了一个数字"点赞"字段。我可以在我的桌子上看到点赞,但当我查询*[_type == 'post']时,我看不到点赞字段。此外,当我尝试使用补丁函数增加字段"点赞"时,客户会抱怨该字段不存在。我该怎么修?

我想这些问题是由于数据尚未出现在您的帖子中。让我们来分解一下:

修补程序错误

由于不能增加未定义/null值,因此必须首先在likes字段上运行setIfMissing以确保其存在。这里有一些伪代码:

client
.patch(postId)
.setIfMissing({ likes: 0 }) // ensure likes exist
.inc({ likes: 1 }) // And only then increment it
.commit()

查询中未显示字段

默认情况下,GROQ不会返回空值。这意味着,如果你的帖子没有设置likes,你甚至不会在API返回的数据中看到这个属性。

如果你需要点赞来显示,你可以使用GROQ的coalesce函数为点赞提供一个默认值。以下是一个示例查询:

*[_type == "post"]{
...,
// Default likes to 0
"likes": coalesce(likes, 0),
}

希望这能帮助

最新更新