Untuk menyimpan senarai rentetan sebagai objek JSONB dalam Postgres menggunakan GORM, pendekatan biasa melibatkan penggunaan jenis tersuai GORM , postgres.Jsonb. Walau bagaimanapun, untuk mengelakkan pergantungan ini, berikut ialah penyelesaian alternatif:
Daripada bergantung pada jenis khusus GORM, pertimbangkan untuk melaksanakan pgtype.JSONB daripada pakej pgx, yang GORM gunakan sebagai pemandunya. Begini cara anda boleh memasukkannya ke dalam model anda:
import ( "github.com/jackc/pgx" "github.com/jackc/pgx/pgtype" ) type User struct { gorm.Model Data pgtype.JSONB `gorm:"type:jsonb;default:'[]';not null"` }
Mengambil semula senarai rentetan sebenar daripada pangkalan data:
u := User{} db.Find(&u) var data []string err := u.Data.AssignTo(&data) if err != nil { // Handle error }
Mengemas kini senarai rentetan dalam pangkalan data:
u := User{} err := u.Data.Set([]string{"abc", "def"}) if err != nil { // Handle error } db.Updates(&u)
Dengan memanfaatkan pgtype.JSONB, anda boleh memanipulasi data JSONB dalam model Go anda tanpa menggunakan jenis postgres.Jsonb GORM, memberikan pendekatan yang lebih langsung dan fleksibel untuk bekerja dengan JSONB dalam Postgres.
Atas ialah kandungan terperinci Bagaimana untuk Menguruskan Data rentetan [] JSONB dengan cekap dalam GORM tanpa postgres.Jsonb?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!