Collection 配置参数
Collection 配置参数说明
name - 数据表名称
- 类型:
string - 必需: ✅
- 说明: 数据表的唯一标识符,在整个应用中必须唯一
- 示例:
title - 数据表标题
- 类型:
string - 必需: ❌
- 说明: 数据表的显示标题,用于前端界面显示
- 示例:
migrationRules - 迁移规则
- 类型:
MigrationRule[] - 必需: ❌
- 说明: 数据迁移时的处理规则
- 示例:
inherits - 继承数据表
- 类型:
string[] | string - 必需: ❌
- 说明: 继承其他数据表的字段定义,支持单个或多个数据表继承
- 示例:
filterTargetKey - 过滤目标键
- 类型:
string | string[] - 必需: ❌
- 说明: 用于过滤查询的目标键,支持单个或多个键
- 示例:
fields - 字段定义
- 类型:
FieldOptions[] - 必需: ❌
- 默认值:
[] - 说明: 数据表的字段定义数组,每个字段包含类型、名称、配置等信息
- 示例:
model - 自定义模型
- 类型:
string | ModelStatic<Model> - 必需: ❌
- 说明: 指定自定义的 Sequelize 模型类,可以是类名或模型类本身
- 示例:
repository - 自定义仓库
- 类型:
string | RepositoryType - 必需: ❌
- 说明: 指定自定义的仓库类,用于处理数据访问逻辑
- 示例:
autoGenId - 自动生成ID
- 类型:
boolean - 必需: ❌
- 默认值:
true - 说明: 是否自动生成主键ID
- 示例:
timestamps - 启用时间戳
- 类型:
boolean - 必需: ❌
- 默认值:
true - 说明: 是否启用创建时间和更新时间字段
- 示例:
createdAt - 创建时间字段
- 类型:
boolean | string - 必需: ❌
- 默认值:
true - 说明: 创建时间字段的配置
- 示例:
updatedAt - 更新时间字段
- 类型:
boolean | string - 必需: ❌
- 默认值:
true - 说明: 更新时间字段的配置
- 示例:
deletedAt - 软删除字段
- 类型:
boolean | string - 必需: ❌
- 默认值:
false - 说明: 软删除字段的配置
- 示例:
paranoid - 软删除模式
- 类型:
boolean - 必需: ❌
- 默认值:
false - 说明: 是否启用软删除模式
- 示例:
underscored - 下划线命名
- 类型:
boolean - 必需: ❌
- 默认值:
false - 说明: 是否使用下划线命名风格
- 示例:
indexes - 索引配置
- 类型:
ModelIndexesOptions[] - 必需: ❌
- 说明: 数据库索引配置
- 示例:
Field 参数配置说明
NocoBase 支持多种字段类型,所有字段都基于 FieldOptions 联合类型定义。字段配置包含基础属性、数据类型特定属性、关系属性以及前端渲染属性。
基础字段选项
所有字段类型都继承自 BaseFieldOptions,提供通用的字段配置能力:
示例:
name - 字段名称
- 类型:
string - 必需: ❌
- 说明: 字段在数据库中的列名,需在 collection 内唯一
- 示例:
hidden - 隐藏字段
- 类型:
boolean - 默认值:
false - 说明: 是否默认在列表/表单中隐藏该字段
- 示例:
validation - 验证规则
- 类型:
ValidationOptions<T> - 说明: 使用 Joi 定义服务器端校验规则
- 示例:
allowNull - 允许空值
- 类型:
boolean - 默认值:
true - 说明: 控制数据库是否允许写入
NULL值 - 示例:
defaultValue - 默认值
- 类型:
any - 说明: 字段的默认值,当创建记录时未提供该字段值时会使用
- 示例:
unique - 唯一约束
- 类型:
boolean | string - 默认值:
false - 说明: 是否唯一;字符串可指定约束名
- 示例:
primaryKey - 主键
- 类型:
boolean - 默认值:
false - 说明: 声明该字段为主键
- 示例:
autoIncrement - 自增
- 类型:
boolean - 默认值:
false - 说明: 启用自增(仅适用于数值型字段)
- 示例:
field - 数据库列名
- 类型:
string - 说明: 指定实际数据库列名(与 Sequelize
field一致) - 示例:
comment - 数据库注释
- 类型:
string - 说明: 数据库字段备注,用于文档说明
- 示例:
title - 显示标题
- 类型:
string - 说明: 字段显示标题,常用于前端界面显示
- 示例:
description - 字段描述
- 类型:
string - 说明: 字段描述信息,用于帮助用户理解字段用途
- 示例:
interface - 界面组件
- 类型:
string - 说明: 推荐使用的前端字段界面组件
- 示例:
字段类型接口
type: 'string' - 字符串字段
- 说明: 用于存储短文本数据,支持长度限制和自动 trim
- 数据库类型:
VARCHAR - 特有属性:
length: 字符串长度限制trim: 是否自动去除首尾空格
示例:
type: 'text' - 文本字段
- 说明: 用于存储长文本数据,支持 MySQL 不同长度的文本类型
- 数据库类型:
TEXT、MEDIUMTEXT、LONGTEXT - 特有属性:
length: MySQL 文本长度类型(tiny/medium/long)
示例:
数值类型
type: 'integer' - 整数字段
- 说明: 用于存储整数数据,支持自增和主键
- 数据库类型:
INTEGER
示例:
type: 'bigInt' - 大整数字段
- 说明: 用于存储大整数数据,范围比 integer 更大
- 数据库类型:
BIGINT
示例:
type: 'float' - 浮点数字段
- 说明: 用于存储单精度浮点数
- 数据库类型:
FLOAT - 特有属性:
precision: 精度(总位数)scale: 小数位数
示例:
type: 'double' - 双精度浮点数字段
- 说明: 用于存储双精度浮点数,精度比 float 更高
- 数据库类型:
DOUBLE - 特有属性:
precision: 精度(总位数)scale: 小数位数
示例:
type: 'real' - 实数字段
- 说明: 用于存储实数,数据库相关
- 数据库类型:
REAL - 特有属性:
precision: 精度(总位数)scale: 小数位数
示例:
type: 'decimal' - 精确小数字段
- 说明: 用于存储精确的小数,适合金融计算
- 数据库类型:
DECIMAL - 特有属性:
precision: 精度(总位数)scale: 小数位数
示例:
布尔类型
type: 'boolean' - 布尔字段
- 说明: 用于存储真/假值,通常用于开关状态
- 数据库类型:
BOOLEAN或TINYINT(1)
示例:
type: 'radio' - 单选字段
- 说明: 用于存储单选值,通常用于二选一的情况
- 数据库类型:
BOOLEAN或TINYINT(1)
示例:
日期时间 类型
type: 'date' - 日期字段
- 说明: 用于存储日期数据,不包含时间信息
- 数据库类型:
DATE - 特有属性:
timezone: 是否包含时区信息
示例:
type: 'time' - 时间字段
- 说明: 用于存储时间数据,不包含日期信息
- 数据库类型:
TIME - 特有属性:
timezone: 是否包含时区信息
示例:
type: 'datetimeTz' - 带时区日期时间字段
- 说明: 用于存储带时区的日期时间数据
- 数据库类型:
TIMESTAMP WITH TIME ZONE - 特有属性:
timezone: 是否包含时区信息
示例:
type: 'datetimeNoTz' - 不带时区日期时间字段
- 说明: 用于存储不带时区的日期时间数据
- 数据库类型:
TIMESTAMP或DATETIME - 特有属性:
timezone: 是否包含时区信息
示例:
type: 'dateOnly' - 仅日期字段
- 说明: 用于存储仅包含日期的数据,不包含时间
- 数据库类型:
DATE - 示例:
type: 'unixTimestamp' - Unix 时间戳字段
- 说明: 用于存储 Unix 时间戳数据
- 数据库类型:
BIGINT - 特有属性:
epoch: 纪元时间
示例:
JSON 类型
type: 'json' - JSON 字段
- 说明: 用于存储 JSON 格式的数据,支持复杂的数据结构
- 数据库类型:
JSON或TEXT - 示例:
type: 'jsonb' - JSONB 字段
- 说明: 用于存储 JSONB 格式的数据(PostgreSQL 特有),支持索引和查询
- 数据库类型:
JSONB(PostgreSQL) - 示例:
数组类型
type: 'array' - 数组字段
- 说明: 用于存储数组数据,支持多种元素类型
- 数据库类型:
JSON或ARRAY - 特有属性:
dataType: 存储类型(json/array)elementType: 元素类型(STRING/INTEGER/BOOLEAN/JSON)
示例:
type: 'set' - 集合字段
- 说明: 用于存储集合数据,类似数组但具有唯一性约束
- 数据库类型:
JSON或ARRAY - 特有属性:
dataType: 存储类型(json/array)elementType: 元素类型(STRING/INTEGER/BOOLEAN/JSON)
示例:
标识符类型
type: 'uuid' - UUID 字段
- 说明: 用于存储 UUID 格式的唯一标识符
- 数据库类型:
UUID或VARCHAR(36) - 特有属性:
autoFill: 自动填充
示例:
type: 'nanoid' - Nanoid 字段
- 说明: 用于存储 Nanoid 格式的短唯一标识符
- 数据库类型:
VARCHAR - 特有属性:
size: ID 长度customAlphabet: 自定义字符集autoFill: 自动填充
示例:
type: 'uid' - 自定义 UID 字段
- 说明: 用于存储自定义格式的唯一标识符
- 数据库类型:
VARCHAR - 特有属性:
prefix: 前缀pattern: 验证模式
示例:
type: 'snowflakeId' - 雪花 ID 字段
- 说明: 用于存储雪花算法生成的唯一标识符
- 数据库类型:
BIGINT - 示例:
功能字段
type: 'password' - 密码字段
- 说明: 用于存储加密后的密码数据
- 数据库类型:
VARCHAR - 特有属性:
length: 哈希长度randomBytesSize: 随机字节大小
示例:
type: 'encryption' - 加密字段
- 说明: 用于存储加密后的敏感数据
- 数据库类型:
VARCHAR - 示例:
type: 'virtual' - 虚拟字段
- 说明: 用于存储计算得出的虚拟数据,不存储在数据库中
- 数据库类型: 无(虚拟字段)
- 示例:
type: 'context' - 上下文字段
- 说明: 用于从运行上下文读取数据(如当前用户信息)
- 数据库类型: 根据 dataType 确定
- 特有属性:
dataIndex: 数据索引路径dataType: 数据类型createOnly: 仅创建时设置
示例:
关系字段
type: 'belongsTo' - 属于关系
- 说明: 表示多对一的关系,当前记录属于另一个记录
- 数据库类型: 外键字段
- 特有属性:
target: 目标数据表名称foreignKey: 外键字段名targetKey: 目标表键字段名onDelete: 删除时的级联操作onUpdate: 更新时的级联操作constraints: 是否启用外键约束
示例:
type: 'hasOne' - 拥有一个关系
- 说明: 表示一对一的关系,当前记录拥有一个相关记录
- 数据库类型: 外键字段
- 特有属性:
target: 目标数据表名称foreignKey: 外键字段名sourceKey: 源表键字段名onDelete: 删除时的级联操作onUpdate: 更新时的级联操作constraints: 是否启用外键约束
示例:
type: 'hasMany' - 拥有多个 关系
- 说明: 表示一对多的关系,当前记录拥有多个相关记录
- 数据库类型: 外键字段
- 特有属性:
target: 目标数据表名称foreignKey: 外键字段名sourceKey: 源表键字段名sortBy: 排序字段sortable: 是否可排序onDelete: 删除时的级联操作onUpdate: 更新时的级联操作constraints: 是否启用外键约束
示例:
type: 'belongsToMany' - 多对多关系
- 说明: 表示多对多的关系,通过中间表连接两个数据表
- 数据库类型: 中间表
- 特有属性:
target: 目标数据表名称through: 中间表名称foreignKey: 外键字段名otherKey: 中间表另一端外键sourceKey: 源表键字段名targetKey: 目标表键字段名onDelete: 删除时的级联操作onUpdate: 更新时的级联操作constraints: 是否启用外键约束
示例:

