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 以處理未認證狀態