首頁  >  文章  >  後端開發  >  如何使用 GORM 和 pgtype.JSONB 在 Postgres 中將一段字串儲存為 JSONB?

如何使用 GORM 和 pgtype.JSONB 在 Postgres 中將一段字串儲存為 JSONB?

Susan Sarandon
Susan Sarandon原創
2024-11-20 16:47:39880瀏覽

How Can I Store a Slice of Strings as JSONB in Postgres Using GORM and pgtype.JSONB?

使用pgtype.JSONB 透過GORM 和Postgres 將一段字串儲存為JSONB

GORM 使用者在嘗試將一段字串儲存為JSONB 時可能會遇到挑戰Postgres 中的對象,而不依賴GORM 特定類型(postgres.Jsonb)。本文深入探討了利用 pgtype.JSONB 來克服這些困難的解決方案。

將 GORM 與 pgx 結合使用時,您可以利用 pgtype 套件來表示 JSONB 資料類型。該套件提供了 pgtype.JSONB 類型,它為管理 Go 結構中的 JSONB 字段提供了一種便捷的解決方案。

要實作此方法,只需如下定義結構:

// User represents a GORM model
type User struct {
    gorm.Model
    Data pgtype.JSONB `gorm:"type:jsonb;default:'[]';not null"`
}

在此範例中,Data 欄位定義為 pgtype.JSONB。

存取JSONB值

要從資料庫擷取資料欄位的值,可以使用AssignTo 方法:

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

var data []string
err := u.Data.AssignTo(&data)
if err != nil {
    log.Fatal(err)
}

設定JSONB 值

要更新資料庫中的資料字段,請使用Set方法:

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

db.Updates(&u)

此方法利用底層驅動程式的功能,無需自訂程式碼並支援無縫處理任何JSONB 類型,而不僅僅是[]string。

以上是如何使用 GORM 和 pgtype.JSONB 在 Postgres 中將一段字串儲存為 JSONB?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn