Heim > Artikel > Backend-Entwicklung > Wie verkette ich mehrere Filter in der Postgres-Datenbank mit Golang und Supabase?
php-Editor Yuzai stellt Ihnen heute eine Methode zum Verknüpfen mehrerer Filter in der Postgres-Datenbank mithilfe von Golang und Supabase vor. Während des Entwicklungsprozesses müssen wir häufig die Datenbank abfragen und filtern, und die Kombination mehrerer Filter kann unsere Anforderungen flexibler erfüllen. Durch die Kombination der Programmiersprache Golang und des Supabase-Datenbankdienstes können wir dieses Ziel leicht erreichen. In diesem Artikel erhalten Sie eine detaillierte Analyse der spezifischen Implementierungsmethoden, damit Sie diese besser in tatsächlichen Projekten anwenden können.
Ich habe also eine Supabase-Postgres-Datenbank eingerichtet und versuche, mit Gin eine API für diese Datenbank einzurichten. Ich verwende nedpals/supabase-go, um eine Verbindung zu meinem Supabase-Client herzustellen. Ich versuche, mehrere Filter basierend auf Anforderungsparametern wie folgt zu verketten:
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) }
Dies basiert auf der Supabase JS-Dokumentation, die mehrere „In“-Filter zulässt. Aber wenn ich das versuche, erhalte ich immer eine Fehlermeldung, bei der results.In undefined (type []any has no field or method In)
基本上 In
keine anwendbare Methode für das Ergebnis ist, obwohl dies laut Dokumentation der Fall sein sollte. p>
Bitte helfen Sie, haha
Ihr aktueller Code führt tatsächlich Folgendes aus:
var results []any results.In("colors", colors)
results
ist ein Slice, also, wie der Fehler sagt, „hat kein Feld oder keine Methode in“.
In
Der Filter muss ausgeführt werden, bevor die Abfrage ausgeführt wird (ungetestet!):
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)
Das obige ist der detaillierte Inhalt vonWie verkette ich mehrere Filter in der Postgres-Datenbank mit Golang und Supabase?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!