JavaScript SDK:数据库参考
aura.db 和可链接查询生成器的每个方法及其签名。
6分钟 读取·级别 参考·修改于 2026年10月12日
该英文文本是根据法文原文自动生成的,尚未经过审查。
该页面已自动翻译。英文版具有权威性。
#
班级
数据库服务
| 方法 | 描述 |
|---|---|
from<TableName extends string & keyof Schema['Tables'], Table extends Schema['Tables'][TableName]>(table: TableName): AuraQueryBuilder<Schema, Table, TableName, AuraClientOptionsT>from<ViewName extends string & keyof Schema['Views'], View extends Schema['Views'][ViewName]>(view: ViewName): AuraQueryBuilder<Schema, View, ViewName, AuraClientOptionsT>from(table: string): AuraQueryBuilder<any, any, any, AuraClientOptionsT> | 在表上启动查询。 |
sql<T = unknown>(query: string, params?: unknown[], options?: RawSqlOptions): Promise<AuraResponse<T>> | 执行原始 SQL 查询 (POST /v1/db/raw)。 |
rpc<FnName extends string, Args extends RpcArgsFor<Schema, FnName> = RpcArgsFor<Schema, FnName>, Fn extends { Row: Record<string, unknown>; Result: unknown; RelationName: unknown; Relationships: unknown; } = RpcResultFor<Schema, FnName, Args>>(fn: FnName, args?: Args, options?: RpcOptions): AuraFilterBuilder<Schema, Fn['Row'], Fn['RelationName'], Fn['Relationships'], Fn['Result'], AuraClientOptionsT> | 调用 PostgREST (POST|GET|HEAD /rpc/{fn}) 公开的函数 Postgres 。 |
schema(): Promise<AuraResponse<{ tables: SchemaTable[]; functions: SchemaFunction[]; enums: SchemaEnum[]; views: SchemaTable[]; }>> | 获取当前项目的架构(表和列、通过 PostgREST公开的 Postgres 函数、枚举类型和视图)。 |
listFunctions(): Promise<AuraResponse<PgFunctionInfo[]>> | 列出项目架构 (GET /v1/db/functions) 的功能。 |
createFunction(definition: CreatePgFunctionRequest): Promise<AuraResponse<null>> | 创建或替换 Postgres (POST /v1/db/functions) 函数。 需要 service_role 密钥。仅限 PostgreSQL 项目。 |
dropFunction(name: string): Promise<AuraResponse<null>> | 从项目架构中删除功能 (DELETE /v1/db/functions/{name})。 需要 service_role 密钥。 |
listTriggers(table: PgRelationName<Schema>): Promise<AuraResponse<PgTriggerInfo[]>> | 列出表 (GET /v1/db/{table}/triggers) 的触发器。 |
createTrigger(table: PgRelationName<Schema>, definition: CreatePgTriggerRequest): Promise<AuraResponse<null>> | 在表 (POST /v1/db/{table}/triggers) 上创建触发器。 需要 service_role 密钥。仅限 PostgreSQL 项目。 |
dropTrigger(table: PgRelationName<Schema>, name: string): Promise<AuraResponse<null>> | 从表中删除触发器 (DELETE /v1/db/{table}/triggers/{name})。 需要 service_role。 |
#
班级
Aura查询生成器
可链接的查询构建器,编译为与后端的 QueryOptions / FilterOp 格式匹配的 URL 查询参数。
| 方法 | 描述 |
|---|---|
insert(body: Relation extends { Insert: infer I; } ? I | I[] : never): this | 插入一行或行数组。 |
update(id: string, body: Relation extends { Update: infer U; } ? U : never): AuraFilterBuilder<Schema, Relation['Row'], RelationName, Relation['Relationships'], Relation['Row'][], ClientOptions, false>update(body: Relation extends { Update: infer U; } ? U : never): AuraFilterBuilder<Schema, Relation['Row'], RelationName, Relation['Relationships'], Relation['Row'][], ClientOptions, false> | 更新行: update(body) 以过滤器为目标,或 update(id, body) 对于每个标识符一行。 |
delete(id?: string): AuraFilterBuilder<Schema, Relation['Row'], RelationName, Relation['Relationships'], Relation['Row'][], ClientOptions, false> | 删除行:按过滤器定位,或按带有 delete(id)的标识符删除一行。 |
upsert(body: Relation extends { Insert: infer I; } ? I | I[] : never, options?: { onConflict?: string; }): AuraFilterBuilder<Schema, Relation['Row'], RelationName, Relation['Relationships'], Relation['Row'][], ClientOptions, false> | 插入或更新(更新插入)一行或行数组。 options.onConflict 命名冲突列(默认为id)。 |
#
班级
光环过滤器生成器
所有 PostgREST 过滤器(eq、 neq、... ilikeAnyOf)。
| 方法 | 描述 |
|---|---|
eq<C extends keyof Row & string>(column: C, value: Row[C]): this | 过滤 column 等于 value的行。 |
neq<C extends keyof Row & string>(column: C, value: Row[C]): this | 过滤 column 与 value不同的行。 |
gt<C extends keyof Row & string>(column: C, value: Row[C]): this | 过滤 column 严格大于 value的行。 |
gte<C extends keyof Row & string>(column: C, value: Row[C]): this | 过滤 column 大于或等于 value的行。 |
lt<C extends keyof Row & string>(column: C, value: Row[C]): this | 过滤 column 严格小于 value的行。 |
lte<C extends keyof Row & string>(column: C, value: Row[C]): this | 过滤 column 小于或等于 value的行。 |
like(column: keyof Row & string, pattern: string): this | 按模式 LIKE过滤,区分大小写(% 替换字符序列)。 |
ilike(column: keyof Row & string, pattern: string): this | 按模式 ILIKE过滤,不区分大小写。 |
is(column: keyof Row & string, value: 'null' | 'true' | 'false' | 'unknown' | 'not.null'): this | IS NULL 或 IS NOT NULL 过滤器。 |
in<C extends keyof Row & string>(column: C, values: Row[C][]): this | 过滤 column 为 values之一的行。 |
or(filters: Array<{ column: string; op: string; value: unknown; }>): this | 添加 OR 组:or=(col1.eq.val1,col2.gt.val2) |
notIn<C extends keyof Row & string>(column: C, values: Row[C][]): this | 过滤 column 不等于任何 values的行。 |
contains(column: keyof Row & string, value: unknown): this | 过滤列(表、JSON 或范围)包含 value (运算符 @>)的行。 |
containedBy(column: keyof Row & string, value: unknown): this | 过滤列(数组、JSON 或范围)包含在 value (运算符 <@)中的行。 |
overlaps(column: keyof Row & string, value: unknown): this | 过滤其列(数组或范围)至少有一个与 value (运算符 &&)相同的元素的行。 |
rangeGt(column: keyof Row & string, range: string): this | 间隔:过滤严格位于 range (运算符 >>)右侧的范围。 |
rangeGte(column: keyof Row & string, range: string): this | 范围:过滤未延伸到 range (运算符 &>)左侧的范围。 |
rangeLt(column: keyof Row & string, range: string): this | 间隔:过滤严格位于 range (运算符 <<)左侧的范围。 |
rangeLte(column: keyof Row & string, range: string): this | 范围:过滤未延伸到 range (运算符 &<)右侧的范围。 |
rangeAdjacent(column: keyof Row & string, range: string): this | 范围:过滤与 range (运算符 -|-)相邻的范围。 |
isDistinct(column: keyof Row & string, value: unknown): this | 过滤 column 与 value不同的行,将 NULL 视为值 (IS DISTINCT FROM)。 |
not(column: string, op: string, value: unknown): this | 否定过滤器: not('status', 'eq', 'done') 相当于 status ,与 done不同。 |
filter(column: string, op: string, value: unknown): this | 对于专用方法未涵盖的情况,添加带有原始 PostgREST 运算符的过滤器(eq、 gt、 cs...)。 |
match(query: Record<string, unknown>): this | 同时按多列上的相等性进行过滤: match({ a: 1, b: 2 })。 |
textSearch(column: keyof Row & string, query: string, options?: { type?: 'plain' | 'phrase' | 'websearch'; config?: string; }): this | 全文搜索。 options.type 选择查询: 'plain'、 'phrase' 或 'websearch' (否则本机 tsquery 语法); options.config 设置语言配置。 |
likeAllOf(column: keyof Row & string, patterns: string[]): this | 过滤器 LIKE:该列必须匹配所有模式。 |
likeAnyOf(column: keyof Row & string, patterns: string[]): this | 过滤器 LIKE:该列必须匹配至少一个模式。 |
ilikeAllOf(column: keyof Row & string, patterns: string[]): this | 过滤器 ILIKE (不区分大小写):该列必须匹配所有模式。 |
ilikeAnyOf(column: keyof Row & string, patterns: string[]): this | 过滤器 ILIKE (不区分大小写):该列必须匹配至少一个模式。 |
#
班级
AuraTransformBuilder
列选择、排序、分页和基数修饰符 (single/maybeSingle/count)。
| 方法 | 描述 |
|---|---|
select<Query extends string = '*', NewResultOne = GetResult<Schema, Row, RelationName, Relationships, Query, ClientOptions>>(columns?: Query, options?: SelectOptions): AuraFilterBuilder<Schema, Row, RelationName, Relationships, NewResultOne[], ClientOptions, ThrowOnError> | 选择列并可选择嵌入相关资源(PostgREST 奇偶校验)。 |
order(column: string, directionOrOptions?: 'asc' | 'desc' | OrderOptions): this | 按列排序。 |
limit(n: number): this | 限制返回的行数。 |
offset(n: number): this | 忽略前 n 行(移位分页)。 |
range(from: number, to: number): this | 按索引间隔 [from, to](含,以 0 为基数)排列的页面。 |
cursor(cursor: string): this | 键集分页:传递上一页的不透明 next_cursor (在大型表上优于 offset:稳定,无重复/跳过)。 |
count(mode?: CountMode): this | 请求匹配行的总数(默认 'exact'或 'estimated'),在 count中返回。 |
single<ResultOne = Result extends (infer U)[] ? U : Result>(): AuraPostgrestBuilder<ClientOptions, ResultOne, ThrowOnError> | 等待恰好一行并返回对象本身; 0 行或多行给出错误 PGRST116。 |
maybeSingle<ResultOne = Result extends (infer U)[] ? U : Result>(): AuraPostgrestBuilder<ClientOptions, ResultOne | null, ThrowOnError> | 与 single()类似,但 0 行不是错误: data 则为 null。 |
#
班级
AuraPostgrestBuilder
基类:共享状态、构造函数、HTTP 执行 (then/_execute)、throwOnError 和 buildQueryString。
| 方法 | 描述 |
|---|---|
throwOnError(): this | 当请求失败时抛出异常(而不是返回 { error })。 |
buildQueryString(): string | 构造查询字符串 PostgREST (选择、过滤、排序、分页)而不运行查询;对于调试很有用。 |
then<TResult1 = AuraResponse<Result>, TResult2 = never>(onfulfilled?: ((value: AuraResponse<Result>) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2> | 执行查询:构建器是“thenable”,一个简单的 await 就足够了。 |
生成的页面
该页面是根据 SDK 的类型声明和注释生成的,因此它不会偏离已发布的代码。有关工作示例,请阅读指南。
最后更新· 2026年10月12日