Life OS 文档

文档 / 数据

打开 Markdown

数据

platform.data 提供当前用户的数据访问能力。应用没有独立业务后端,不需要自己处理登录和 HTTP 请求。

list()

js
const datasets = await platform.data.list();

返回 Promise<Dataset[]>。每个数据集包含 idnameslugschemacreated_atupdated_at 等元数据。schema.fields 定义业务字段,字段类型包括 stringnumberbooleandatetimejsonrequired: true 表示必填。

绑定了 table_ids 的应用只会列出绑定的数据集;未绑定且获全空间授权时会列出当前用户全部数据集。记录查询、更新和删除也受相同授权范围限制。不要把列表顺序当成固定顺序,也不要随意选择第一个数据集作为业务存储。

get(idOrSlug)

js
const todos = await platform.data.get("todo");
const rows = await platform.data.query(todos.id);

按数据集 ID 或 slug 查找,返回 Promise<Dataset>。不能按显示名称查找;名称和 slug 未必相同。数据集不存在或不在发现范围时会报错。

后续的查询与写入方法使用 todos.id,不要把 slug 直接传给 queryinsert

getRecord(datasetId, recordId)

js
const row = await platform.data.getRecord(todos.id, recordId);
console.log(row.title, row.done);

返回一条字段展开后的记录;不存在时抛出错误,不返回 null

读取结构

querygetRecord 将业务数据放在对象顶层:

json
{
  "id": "RECORD_ID",
  "table_id": "DATASET_ID",
  "title": "取快递",
  "done": false,
  "created_at": "2026-01-01T09:00:00.000Z",
  "updated_at": "2026-01-01T09:00:00.000Z"
}

系统字段会覆盖同名的业务字段,不要将 idtable_idcreated_atupdated_at 用作业务字段名称。

写入返回值保留 { id, table_id, data, created_at, updated_at } 结构,业务字段在 data 内,与读取接口不同。请参阅写入与删除

数据模型与边界

应用不能通过 platform.data 创建数据集或修改 schema。请在数据库应用或构建会话中完成数据准备。数据库应用支持新增、重命名、删除字段、调整类型、必填与顺序,详见管理数据表。逻辑数据集不是物理 SQL 表,不开放 SQL、跨数据集 join 或实时订阅。

推荐为需要筛选、排序的字段使用英文字母或下划线开头的标识符,例如 titleamountcreated_on。查询字段支持中英文字母、数字和下划线,不能以数字开头。

数据库仍然位于云端,调用可能失败或产生延迟,应用应显示加载和错误状态。数据不依附应用文件包,替换源码不会清除用户记录。

兼容接口

旧应用的 platform.tables 仍是 platform.data 的别名。data.list(datasetId) 仍可作为旧版查询写法使用,但新应用应使用无参数的 list() 发现数据集,使用 query(id, options) 读取记录。