Maison > Article > développement back-end > Comment chaîner plusieurs filtres sur la base de données Postgres à l'aide de Golang et supabase ?
l'éditeur php Yuzai vous présente aujourd'hui une méthode de liaison de plusieurs filtres sur la base de données Postgres à l'aide de Golang et supabase. Au cours du processus de développement, nous devons souvent interroger et filtrer la base de données, et la combinaison de plusieurs filtres peut répondre à nos besoins de manière plus flexible. En combinant le langage de programmation Golang et le service de base de données supabase, nous pouvons facilement atteindre cet objectif. Cet article vous fournira une analyse détaillée des méthodes de mise en œuvre spécifiques pour vous aider à mieux les appliquer dans des projets réels.
J'ai donc une configuration de base de données supabase postgres et j'essaie de configurer une API pour cette base de données à l'aide de gin. J'utilise nedpals/supabase-go pour me connecter à mon client supabase. J'essaie d'enchaîner plusieurs filtres en fonction des paramètres de requête comme ceci :
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) }
Ceci est basé sur la documentation Supabase JS qui permet plusieurs filtres "In". Mais lorsque j'essaie de faire cela, je reçois toujours une erreur où results.In undefined (type []any has no field or method In)
基本上 In
n'est pas une méthode applicable pour le résultat, même si elle devrait être basée sur la documentation. p>
S'il vous plaît, aidez haha
Votre code actuel fait en fait ce qui suit :
var results []any results.In("colors", colors)
results
est une tranche, donc, comme le dit l'erreur, "n'a pas de champ ni de méthode In".
In
Besoin d'exécuter le filtre avant d'exécuter la requête quelque chose comme ce qui suit (non testé !) :
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)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!