Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mengendalikan Data JSONB dengan Cekap dalam Gorm Tanpa Menggunakan postgres.Jsonb?

Bagaimanakah Saya Boleh Mengendalikan Data JSONB dengan Cekap dalam Gorm Tanpa Menggunakan postgres.Jsonb?

Susan Sarandon
Susan Sarandonasal
2024-11-25 03:36:11756semak imbas

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

Menggunakan JSONB dengan Gorm dan Postgres Tanpa postgres.Jsonb

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.

Pelaksanaan

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"`
}

Membaca dan Menulis Data JSONB

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn