Wie verkette ich mehrere Filter in der Postgres-Datenbank mit Golang und Supabase?

王林
Freigeben: 2024-02-09 15:03:08
nach vorne
474 Leute haben es durchsucht

如何使用 Golang 和 supabase 在 Postgres 数据库上链接多个过滤器?

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.

Frageninhalt

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)
}
Nach dem Login kopieren

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.

Bitte helfen Sie, haha

Workaround

Ihr aktueller Code führt tatsächlich Folgendes aus:

var results []any
results.In("colors", colors)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!