شعار أوراباسي
aurabaseمستندات
مستندات›JavaScript SDK reference›Database reference

JavaScript SDK: مرجع قاعدة البيانات

كل طريقة من أساليب aura.db ومنشئ الاستعلام القابل للتسلسل، مع توقيعها.

6 د قراءة·المستوى مرجع·تمت المراجعة في 12‏/10‏/2026
تم إنشاء هذا النص الإنجليزي تلقائيًا من النص الأصلي الفرنسي ولم تتم مراجعته بعد.
تمت ترجمة هذه الصفحة تلقائيًا. النسخة الإنجليزية موثوقة.
#
فئة

DatabaseService

الطريقةالوصف
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>يستدعي دالة Postgres مكشوفة بواسطة PostgREST (POST|GET|HEAD /rpc/{fn}).
schema(): Promise<AuraResponse<{ tables: SchemaTable[]; functions: SchemaFunction[]; enums: SchemaEnum[]; views: SchemaTable[]; }>>قم بإحضار المخطط (الجداول والأعمدة، ووظائف Postgres المعروضة عبر PostgREST، وأنواع التعداد وطرق العرض) للمشروع الحالي.
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.
#
فئة

AuraQueryBuilder

منشئ استعلام قابل للتسلسل يقوم بتجميع معلمات استعلام URL التي تطابق تنسيق QueryOptions / FilterOp الخاص بالواجهة الخلفية.

الطريقةالوصف
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 بشكل افتراضي).
#
فئة

AuraFilterBuilder

جميع مرشحات 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مرشح فارغ أو ليس فارغًا.
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=(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الصفحات حسب الفاصل الزمني للفهرس [من، إلى] (شاملاً، الأساس 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>تنفيذ الاستعلام: المُنشئ "قابل للتنفيذ"، ويكفي await البسيط.
الصفحة التي تم إنشاؤها

يتم إنشاء هذه الصفحة من إعلانات النوع وتعليقات SDK، لذلك لا يمكن أن تنحرف عن التعليمات البرمجية المنشورة. للحصول على أمثلة عملية، اقرأ الأدلة.