Find the anon key with npx @insforge/cli secrets get ANON_KEY, or in the dashboard: click Install and open API Keys.
insert()
将新记录插入表中。
values (object | Array, required) - 要插入的数据。单个对象或数组用于批量插入
options.count (‘exact’ | ‘planned’ | ‘estimated’, optional) - 包含插入行数
在 .insert() 后链接 .select() 以返回插入的数据
输出示例
update()
更新表中的现有记录。必须使用筛选器来定位特定行。
values (object, required) - 要更新的字段
options.count (‘exact’ | ‘planned’ | ‘estimated’, optional) - 包含更新行数
始终使用筛选器(如 .eq() 或 .in())来指定要更新的行
输出示例
delete()
从表中删除记录。必须使用筛选器来定位特定行。
options.count (‘exact’ | ‘planned’ | ‘estimated’, optional) - 包含删除行数
输出示例
select()
从表或视图查询记录。
columns (string, optional) - 逗号分隔的列名。使用 * 表示所有列
options.count (‘exact’ | ‘planned’ | ‘estimated’, optional) - 包含总行数
options.head (boolean, optional) - 仅返回计数,不返回数据
输出示例
rpc()
调用 PostgreSQL 存储函数(RPC - 远程过程调用)。
functionName (string, required) - 要调用的 PostgreSQL 函数的名称
args (object, optional) - 传递给函数的参数
筛选器
链接筛选器以缩小查询结果范围。所有筛选器采用 (column, value) 作为参数。
| 筛选器 | 描述 | 示例 |
|---|
.eq(column, value) | 等于 | .eq('status', 'active') |
.neq(column, value) | 不等于 | .neq('status', 'banned') |
.gt(column, value) | 大于 | .gt('age', 18) |
.gte(column, value) | 大于或等于 | .gte('price', 100) |
.lt(column, value) | 小于 | .lt('stock', 10) |
.lte(column, value) | 小于或等于 | .lte('priority', 3) |
.like(column, pattern) | 区分大小写的模式(使用 % 通配符) | .like('name', '%Widget%') |
.ilike(column, pattern) | 不区分大小写的模式(使用 % 通配符) | .ilike('email', '%@gmail.com') |
.in(column, array) | 值在数组中 | .in('status', ['pending', 'active']) |
.is(column, value) | 完全等于(用于 null 检查) | .is('deleted_at', null) |
修饰符
控制查询结果的返回方式。
| 修饰符 | 描述 | 示例 |
|---|
.order(column, options) | 排序结果。选项:{ ascending: true/false, nullsFirst: true/false } | .order('created_at', { ascending: false }) |
.limit(count) | 限制行数 | .limit(10) |
.range(from, to) | 获取索引之间的行(分页) | .range(0, 9) |
.single() | 返回对象而不是数组(如果有多个则抛出) | .single() |
.maybeSingle() | 返回对象或 null(无错误) | .maybeSingle() |
常见模式
带计数的分页
输出:
筛选搜索
输出:
与身份验证钩子结合使用
结合数据库查询与 useUser() 或 useAuth() 钩子来获取用户特定的数据:
关键要点:
- 使用
user.id 为已认证用户筛选数据
- 在访问
user 之前检查 isLoaded 以避免竞争条件
- 检查
!user 以处理未认证状态