Bei der Arbeit mit Postgres in Golang ist es oft notwendig, JSONB-Datentypen zu manipulieren. Gorm, eine ORM-Bibliothek (Object-Relational Mapping) für Go, bietet eine praktische API für die Interaktion mit Datenbanken. Der Standardansatz für die Verarbeitung von JSONB erfordert jedoch die Verwendung des dedizierten Typs postgres.Jsonb.
Um die direkte Verwendung dieses Typs in Modellen zu vermeiden, sollten Sie stattdessen die Verwendung von pgtype.JSONB in Betracht ziehen. Dieser Typ wird vom Paket pgtype angeboten, einer Begleitbibliothek zu pgx, dem zugrunde liegenden Treiber von Gorm. pgtype bietet eine flexiblere und effizientere Möglichkeit, mit JSONB-Daten zu arbeiten.
Definieren Sie in Ihrer Go-Struktur ein Feld zum Speichern der JSONB-Daten wie folgt:
type User struct { gorm.Model Data pgtype.JSONB `gorm:"type:jsonb;default:'[]';not null"` }
Um JSONB-Daten aus dem abzurufen Datenbank:
u := User{} db.Find(&u) var data []string err := u.Data.AssignTo(&data) if err != nil { // Handle error }
So legen Sie JSONB-Daten für ein Update fest:
u := User{} err := u.Data.Set([]string{"abc", "def"}) if err != nil { // Handle error } db.Updates(&u)
Die Verwendung von pgtype.JSONB bietet eine bessere Alternative zur Manipulation von JSONB-Daten in Gorm. Durch die direkte Verwendung des Typs vermeiden Sie die Einschränkungen und potenziellen Komplikationen bei der Arbeit mit postgres.Jsonb.
Das obige ist der detaillierte Inhalt vonWie kann ich JSONB-Daten in Gorm effizient verarbeiten, ohne postgres.Jsonb zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!