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

如何通过HTTP API提交JSON在SurrealDB中创建记录链接?

在SurrealDB中通过HTTP API提交JSON创建记录链接

SurrealDB官方文档确实没详细说明HTTP API创建记录链接的方法,但实际有两种明确方式,可区分普通字符串和表名:记录ID格式的记录引用:

方法一:用$ref指定明确记录链接

这是最稳妥的方式,通过带$ref键的JSON对象,明确告知SurrealDB这是一条记录引用,而非普通字符串。

举个例子:要创建一条order记录,关联到person表中ID为tobiak777的用户,提交的JSON如下:

{
  "customer": {"$ref": "person:tobiak777"},
  "order_number": "ORD-12345"
}

将该JSON通过POST请求发送到SurrealDB的表接口即可,比如http://你的SurrealDB地址/db/你的数据库/ns/你的命名空间/db/order。

方法二:直接传递表名:记录ID格式的字符串

如果字符串严格符合[表名]:[记录ID]的格式,SurrealDB会自动识别为记录链接,无需额外包装。

同样以上述场景为例,JSON可简化为:

{
  "customer": "person:tobiak777",
  "order_number": "ORD-12345"
}

但需注意两个细节:

  • 表名和记录ID中不能包含冒号,如果记录ID必须带冒号,建议使用第一种$ref方式
  • 若业务场景需要存储person:xxx格式的普通字符串(不想被识别为记录链接),需用$string包装,比如{"$string": "person:tobiak777"},这样会被当作普通文本存储

验证链接是否生效

提交后可通过GET请求查询该记录,返回结果会显示关联的完整记录信息,示例如下:

{
  "id": "order:ord-12345",
  "customer": {"id": "person:tobiak777", "name": "Tobi"},
  "order_number": "ORD-12345"
}

额外提醒

  • 确保目标记录已存在,否则创建的链接会无效(SurrealDB允许创建指向不存在记录的链接,但后续查询需注意处理)
  • 使用$ref时,其值必须是有效的记录ID格式,否则会被当作普通JSON对象处理

内容的提问来源于stack exchange,提问作者tobiak777

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 16:33:28