Maison > développement back-end > Golang > Comment puis-je gérer efficacement les données JSONB dans Gorm sans utiliser postgres.Jsonb ?

Comment puis-je gérer efficacement les données JSONB dans Gorm sans utiliser postgres.Jsonb ?

Susan Sarandon
Libérer: 2024-11-25 03:36:11
original
705 Les gens l'ont consulté

How Can I Efficiently Handle JSONB Data in Gorm Without Using postgres.Jsonb?

Utiliser JSONB avec Gorm et Postgres sans postgres.Jsonb

Lorsque vous travaillez avec Postgres dans Golang, il est souvent nécessaire de manipuler les types de données JSONB. Gorm, une bibliothèque ORM (Object-Relational Mapping) pour Go, fournit une API pratique pour interagir avec les bases de données. Cependant, son approche par défaut pour gérer JSONB nécessite l'utilisation du type postgres.Jsonb dédié.

Pour éviter d'utiliser ce type directement dans les modèles, envisagez plutôt d'utiliser pgtype.JSONB. Ce type est proposé par le package pgtype, qui est une bibliothèque complémentaire à pgx, le pilote sous-jacent de Gorm. pgtype fournit un moyen plus flexible et efficace de travailler avec les données JSONB.

Implémentation

Dans votre structure Go, définissez un champ pour stocker les données JSONB comme suit :

type User struct {
    gorm.Model
    Data pgtype.JSONB `gorm:"type:jsonb;default:'[]';not null"`
}
Copier après la connexion

Lecture et écriture de données JSONB

Pour récupérer les données JSONB du base de données :

u := User{}
db.Find(&u)

var data []string

err := u.Data.AssignTo(&data)
if err != nil {
    // Handle error
}
Copier après la connexion

Pour définir les données JSONB pour une mise à jour :

u := User{}

err := u.Data.Set([]string{"abc", "def"})
if err != nil {
    // Handle error
}

db.Updates(&u)
Copier après la connexion

L'utilisation de pgtype.JSONB offre une meilleure alternative à la manipulation des données JSONB dans Gorm. En utilisant le type directement, vous évitez les limitations et les complications potentielles liées au travail avec postgres.Jsonb.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal