首頁 >後端開發 >Golang >如何在沒有 postgres.Jsonb 的情況下高效管理 GORM 中的 JSONB []string 資料?

如何在沒有 postgres.Jsonb 的情況下高效管理 GORM 中的 JSONB []string 資料?

Barbara Streisand
Barbara Streisand原創
2024-11-26 08:55:10840瀏覽

How to Efficiently Manage JSONB []string Data in GORM without postgres.Jsonb?

使用[]string 在Gorm 中操作JSONB

要使用GORM 將字符串列表作為JSONB 對象存儲在Postgres 中,常見的方法是利用GORM 的自定義型別, postgres.Jsonb。然而,為了避免這種依賴性,這裡有一個替代解決方案:

使用pgtype.JSONB

不要依賴GORM 的特定類型,而是考慮從pgx 套件實現pgtype.JSONB, GORM 將其用作它的司機。以下是將其合併到模型中的方法:

import (
    "github.com/jackc/pgx"
    "github.com/jackc/pgx/pgtype"
)

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

使用pgtype.JSONB

從資料庫中擷取實際的字串清單:

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

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

從資料庫中擷取實際的字串清單:

u := User{}

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

db.Updates(&u)

更新資料庫中的字串清單:

透過利用pgtype.JSONB,您可以在Go模型中操作 JSONB 數據,而無需使用 GORM 的 postgres.Jsonb 類型,為在 Postgres 中使用 JSONB 提供更直接、更靈活的方法。

以上是如何在沒有 postgres.Jsonb 的情況下高效管理 GORM 中的 JSONB []string 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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