Home > Article > Backend Development > How to chain multiple filters on Postgres database using Golang and supabase?
php Xiaobian Yuzai today introduces a method of linking multiple filters on the Postgres database using Golang and supabase. During the development process, we often need to query and filter the database, and the combination of multiple filters can meet our needs more flexibly. By combining the Golang programming language and supabase database service, we can easily achieve this goal. This article will provide you with a detailed analysis of the specific implementation methods to help you better apply them in actual projects.
So I have a supabase postgres database setup and I'm trying to use gin to setup the API for that database. I'm using nedpals/supabase-go to connect to my supabase client. I'm trying to chain multiple filters based on request parameters like this:
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) }
This is based on the Supabase JS documentation which allows multiple "In" filters. But when I try to do this I keep getting errors where results.In undefined (type []any has no field or method In)
basically In
is not applicable to results method, even though it should be based on documentation. p>
Please help haha
Your current code is actually doing the following:
var results []any results.In("colors", colors)
results
is a slice, so, as the error says, "There is no field or method In".
In
Need to run against the filter before executing the query; something like the following (untested!):
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)
The above is the detailed content of How to chain multiple filters on Postgres database using Golang and supabase?. For more information, please follow other related articles on the PHP Chinese website!