Heim > Backend-Entwicklung > Golang > Wie arbeite ich mit JSONB-Daten in GORM ohne postgres.Jsonb?

Wie arbeite ich mit JSONB-Daten in GORM ohne postgres.Jsonb?

Patricia Arquette
Freigeben: 2024-11-20 02:25:02
Original
445 Leute haben es durchsucht

How to Work with JSONB Data in GORM without 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"`
}
Nach dem Login kopieren

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

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

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!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage