php小編魚仔今天為大家介紹一種使用Golang和supabase在Postgres資料庫上連結多個過濾器的方法。在開發過程中,我們經常需要對資料庫進行查詢和篩選,而多個過濾器的組合使用可以更靈活地滿足我們的需求。透過結合Golang程式語言和supabase資料庫服務,我們可以輕鬆實現這一目標。本文將為您詳細解析具體的實作方法,幫助您更好地應用於實際專案中。
所以我有一個 supabase postgres 資料庫設置,我正在嘗試使用 gin 為該資料庫設定 API。我正在使用 nedpals/supabase-go 連接到我的 supabase 用戶端。我正在嘗試根據請求參數連結多個過濾器,如下所示:
func GetCardsByAdvanceSearch(supabase *supa.Client) gin.HandlerFunc { fn := func(context *gin.Context) { sets, isSets := context.GetQueryArray("setCode") colors, isColors := context.GetQueryArray("color") var results []any err := supabase.DB.From("cards").Select("*").Execute(&results) if(isColors) { results.In("colors", colors)} if(isSets) { results.In("set_code", sets)} if err != nil { panic(err) } context.JSON(http.StatusOK, gin.H{ "Results": results, }) } return gin.HandlerFunc(fn) }
這基於允許多個「In」過濾器的 Supabase JS 文件。但是當我嘗試這樣做時,我不斷收到錯誤,其中results.In undefined (type []any has no field or method In)
基本上In
不是結果的適用方法,即使它應該基於文檔。 p>
請幫忙哈哈
您目前的程式碼實際上正在執行以下操作:
var results []any results.In("colors", colors)
results
是一個切片,因此,如錯誤所述,「沒有欄位或方法 In」。
In
需要在執行查詢之前執行針對過濾器;類似以下內容(未經測試!):
srb := supabase.DB.From("cards").Select("*") if(isColors) {srb.In("colors", colors)} if(isSets) {srb.In("set_code", sets)} var results []any err := srb.Execute(&results)
以上是如何使用 Golang 和 supabase 在 Postgres 資料庫上連結多個過濾器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!