Content management system Can';t使搜索查询在SanityCMS中工作

Content management system Can';t使搜索查询在SanityCMS中工作,content-management-system,sanity,groq,Content Management System,Sanity,Groq,我正在尝试使用SanityCMS执行一个非常基本的搜索查询。 这就是我创建的person模式的样子: 导出默认值{ 标题:“人”, 姓名:“人”, 键入:“文件”, 字段:[ { 标题:“姓名”, 姓名:“姓名”, 键入:“字符串”, } ] } 我输入了两个不同的人员数据。 这就是我试图获取数据的方式: const client=sanityClient({ projectId:'siaj5ql4', 数据集:“生产”, useCdn:对 }) const query='*[\u type=

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

导出默认值{
标题:“人”,
姓名:“人”,
键入:“文件”,
字段:[
{
标题:“姓名”,
姓名:“姓名”,
键入:“字符串”,
}
]
}
我输入了两个不同的人员数据。 这就是我试图获取数据的方式:

const client=sanityClient({
projectId:'siaj5ql4',
数据集:“生产”,
useCdn:对
})
const query='*[\u type==“person”]'
client.fetch(查询).then(person=>{
控制台日志(个人)
})
但是我在控制台中得到了一个空数组:
[]
没有错误或任何东西。
对这个简单的任务有什么想法吗?

有两个常见的原因:

  • 数据集是私有的,客户端未配置令牌
  • 您希望看到的文档未发布(默认情况下,草稿是私有的),并且客户端未配置令牌

  • 还请注意,CDN不能与专用数据集和/或访问令牌一起使用。

    Sanity命令行是调试此类问题的好工具。将终端和cd放入运行代码的文件夹。键入以下内容:
    sanitydocuments查询'*[\u Type==“person”]'
    。你有什么结果吗?@thomax是的,我有。我还在
    vision
    上尝试了完全相同的查询,这是一个用于执行查询的健全插件,它还返回预期的数据。没错,数据集是私有的,将其设置为公共解决了问题。当CORS源代码仅限于特定URL时,将数据集设置为公共数据集是否有任何缺点?很高兴它为您解决了这个问题!将数据集公开意味着数据集中的每个已发布文档都是公开可读的(CORS仅在浏览器上下文中起作用,不限制任何人对数据集进行爬网,例如对所有公开文档进行爬网)。