You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Sanity.io的对象数组文档字段转换为字符串数组

Sanity标签字段返回字符串数组配置方法

你当前拿到对象数组的原因是tags字段配置为了关联独立tags文档的引用类型,引用类型查询默认返回关联文档的对象结构,按你的实际需求选以下任意一种方案即可:

方案1:保留独立标签文档,仅调整查询语句

如果需要保留独立的标签文档(用于标签聚合、统一管理标签元数据等场景),不需要修改现有Schema配置,只需要调整GraphQL查询语句,查询tags字段时直接指定拉取title字段即可:

query GetRecipeList {
  allRecipe {
    _id
    recipeTitle
    tags {
      title
    }
  }
}

该写法会直接返回一维字符串数组格式的标签数据。如果修改查询后格式未生效,去Sanity后台重新部署GraphQL端点,Schema变动后必须重新部署端点才能同步查询能力。

方案2:修改Schema移除引用,直接存储字符串标签

如果不需要单独维护标签文档,仅需要基础的打标签功能,可以直接修改recipes.js里的tags字段配置,把引用类型改为字符串类型,不需要再依赖独立的tags.js文档:

// recipes.js 中tags字段修改后配置
{
  name: 'tags',
  title: 'Tags',
  type: 'array',
  of: [{ type: 'string' }],
  options: {
    layout: 'tags',
  },
}

这种配置下标签会直接以字符串格式存储在食谱文档中,查询时不需要做嵌套字段提取,直接返回['dinner', 'lunch', 'ribs']格式的结果,编辑后台的标签输入交互和之前完全一致。


内容的提问来源于stack exchange,提问作者André Jarboe II

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.17 16:16:01