Heim >Backend-Entwicklung >Golang >Wie arbeite ich mit JSONB-Daten in GORM ohne postgres.Jsonb?
Arbeiten mit JSONB in GORM ohne postgres.Jsonb
Bei der Verwendung von GORM mit PostgreSQL kann es vorkommen, dass Sie ein Array speichern möchten von Strings als JSONB-Objekt. Obwohl GORM für diesen Zweck den Typ postgres.Jsonb bereitstellt, möchten Sie möglicherweise lieber auf dessen Verwendung verzichten. In diesem Artikel untersuchen wir alternative Methoden zur Manipulation von JSONB mithilfe von GORM, ohne auf den Typ postgres.Jsonb angewiesen zu sein.
Verwendung von pgtype.JSONB
Der empfohlene Ansatz umfasst unter Verwendung von pgtype.JSONB, einem Typ, der vom von GORM verwendeten pgx-Treiber bereitgestellt wird. pgtype.JSONB bietet eine einfache und effiziente Möglichkeit, mit JSONB-Spalten zu interagieren. Hier ist ein Beispiel:
type User struct { gorm.Model Data pgtype.JSONB `gorm:"type:jsonb;default:'[]';not null"` }
JSONB-Daten abrufen
Um einen JSONB-Wert aus der Datenbank abzurufen, weisen Sie ihn einer Variablen zu:
u := User{} db.find(&u) var data []string err := u.Data.AssignTo(&data) if err != nil { // Handle error }
JSONB-Daten speichern
Um einen JSONB-Wert in der Datenbank zu speichern, verwenden Sie die Set-Methode:
u := User{} err := u.Data.Set([]string{"abc", "def"}) if err != nil { // Handle error } db.Updates(&u)
Durch die Verwendung von pgtype.JSONB gewinnen Sie Flexibilität und Kompatibilität mit verschiedenen JSONB-Typen über einfache String-Arrays hinaus. Dieser Ansatz ist auf die Fähigkeiten des zugrunde liegenden Treibers von GORM abgestimmt und gewährleistet optimale Leistung und zuverlässige Datenbankinteraktionen.
Das obige ist der detaillierte Inhalt vonWie arbeite ich mit JSONB-Daten in GORM ohne postgres.Jsonb?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!