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

SurrealDB中如何在array类型内定义指定结构的对象Schema?

创建SurrealDB SCHEMAFULL模式的表h

要创建符合要求的SCHEMAFULL表,你可以使用SurrealDB的DDL语句,明确定义表的模式以及items字段的数组对象结构:

-- 定义SCHEMAFULL模式的表h
DEFINE TABLE h SCHEMAFULL;

-- 定义items字段为包含指定结构对象的数组
DEFINE FIELD items ON h TYPE ARRAY<OBJECT {
    active: bool,
    key: string,
    value: string,
    description: string|null
}>;

语句说明

  • DEFINE TABLE h SCHEMAFULL;:将表h设置为SCHEMAFULL模式,所有插入或更新的数据必须严格匹配定义的Schema,不符合的数据会被直接拒绝。
  • ARRAY<OBJECT { ... }>:指定items是一个数组,数组中的每个元素必须是符合内部结构的对象:
    • active: bool:属性值必须为布尔类型(true/false)
    • key: string:属性值必须为字符串类型
    • value: string:属性值必须为字符串类型
    • description: string|null:属性值可以是字符串,也可以是null

验证示例

插入符合Schema的数据会成功执行:

INSERT INTO h {
    items: [
        {
            active: true,
            key: "language",
            value: "zh-CN",
            description: "系统语言设置"
        },
        {
            active: false,
            key: "auto_save",
            value: "disabled",
            description: null
        }
    ]
};

如果尝试插入不符合Schema的数据(比如给active赋值字符串),SurrealDB会直接抛出错误,确保数据一致性。

内容的提问来源于stack exchange,提问作者W.A Rajinda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:36:00