Heim >Backend-Entwicklung >Golang >Wie verwaltet man JSONB-[]String-Daten in GORM effizient ohne postgres.Jsonb?
Um eine Liste von Strings als JSONB-Objekt in Postgres mit GORM zu speichern, besteht ein gängiger Ansatz darin, den benutzerdefinierten Typ von GORM zu verwenden , postgres.Jsonb. Um diese Abhängigkeit zu vermeiden, gibt es jedoch eine alternative Lösung:
Anstatt sich auf den spezifischen Typ von GORM zu verlassen, sollten Sie erwägen, pgtype.JSONB aus dem pgx-Paket zu implementieren, das GORM als verwendet sein Fahrer. So können Sie es in Ihr Modell integrieren:
import ( "github.com/jackc/pgx" "github.com/jackc/pgx/pgtype" ) type User struct { gorm.Model Data pgtype.JSONB `gorm:"type:jsonb;default:'[]';not null"` }
Abrufen der tatsächlichen Liste der Zeichenfolgen aus der Datenbank:
u := User{} db.Find(&u) var data []string err := u.Data.AssignTo(&data) if err != nil { // Handle error }
Aktualisierung die Liste der Zeichenfolgen in der Datenbank:
u := User{} err := u.Data.Set([]string{"abc", "def"}) if err != nil { // Handle error } db.Updates(&u)
Durch Nutzung Mit pgtype.JSONB können Sie JSONB-Daten in Ihren Go-Modellen bearbeiten, ohne den postgres.Jsonb-Typ von GORM zu verwenden, was einen direkteren und flexibleren Ansatz für die Arbeit mit JSONB in Postgres bietet.
Das obige ist der detaillierte Inhalt vonWie verwaltet man JSONB-[]String-Daten in GORM effizient ohne postgres.Jsonb?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!