Apabila bekerja dengan Postgres di Golang, selalunya perlu memanipulasi jenis data JSONB. Gorm, perpustakaan ORM (Pemetaan Objek-Kaitan) untuk Go, menyediakan API yang mudah untuk berinteraksi dengan pangkalan data. Walau bagaimanapun, pendekatan lalainya untuk mengendalikan JSONB memerlukan penggunaan jenis postgres.Jsonb khusus.
Untuk mengelak daripada menggunakan jenis ini secara langsung dalam model, pertimbangkan untuk menggunakan pgtype.JSONB sebaliknya. Jenis ini ditawarkan oleh pakej pgtype, yang merupakan perpustakaan pendamping kepada pgx, pemacu asas Gorm. pgtype menyediakan cara yang lebih fleksibel dan cekap untuk bekerja dengan data JSONB.
Dalam struct Go anda, tentukan medan untuk menyimpan data JSONB seperti berikut:
type User struct { gorm.Model Data pgtype.JSONB `gorm:"type:jsonb;default:'[]';not null"` }
Untuk mendapatkan semula data JSONB daripada pangkalan data:
u := User{} db.Find(&u) var data []string err := u.Data.AssignTo(&data) if err != nil { // Handle error }
Untuk menetapkan data JSONB untuk kemas kini:
u := User{} err := u.Data.Set([]string{"abc", "def"}) if err != nil { // Handle error } db.Updates(&u)
Menggunakan pgtype.JSONB menawarkan alternatif yang lebih baik untuk memanipulasi data JSONB dalam Gorm. Dengan menggunakan jenis secara langsung, anda mengelakkan had dan kemungkinan komplikasi bekerja dengan postgres.Jsonb.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Data JSONB dengan Cekap dalam Gorm Tanpa Menggunakan postgres.Jsonb?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!