光环标志
光环基地文档
文档›JavaScript SDK reference›Database reference

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'): thisIS 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日