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.
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"` }
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 }
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)
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!