首頁 > 後端開發 > Golang > 如何在 Gorm 中不使用 postgres.Jsonb 高效處理 JSONB 資料?

如何在 Gorm 中不使用 postgres.Jsonb 高效處理 JSONB 資料?

Susan Sarandon
發布: 2024-11-25 03:36:11
原創
705 人瀏覽過

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

在沒有 postgres.Jsonb 的情況下將 JSONB 與 Gorm 和 Postgres 一起使用

在 Golang 中使用 Postgres 時,通常需要操作 JSONB 資料類型。 Gorm 是 Go 的 ORM(物件關聯映射)庫,提供了一個方便的 API 來與資料庫互動。但是,其處理 JSONB 的預設方法需要使用專用的 postgres.Jsonb 類型。

為了避免直接在模型中使用此類型,請考慮改用 pgtype.JSONB。這種類型由 pgtype 套件提供,它是 Gorm 底層驅動程式 pgx 的配套庫。 pgtype 提供了一種更靈活、更有效率的方式來處理 JSONB 資料。

實作

在Go 結構體中,定義一個用於儲存JSONB 資料的字段,如下所示:

type User struct {
    gorm.Model
    Data pgtype.JSONB `gorm:"type:jsonb;default:'[]';not null"`
}
登入後複製

讀取和寫入JSONB 資料

從資料庫:

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

var data []string

err := u.Data.AssignTo(&data)
if err != nil {
    // Handle error
}
登入後複製

設定JSONB資料以進行更新:

u := User{}

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

db.Updates(&u)
登入後複製

使用 pgtype.JSONB 提供了在 Gorm 中操作 JSONB 資料的更好替代方法。透過直接使用類型,您可以避免使用 postgres.Jsonb 的限制和潛在的複雜性。

以上是如何在 Gorm 中不使用 postgres.Jsonb 高效處理 JSONB 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板