首頁  >  文章  >  後端開發  >  如何在沒有 postgres.Jsonb 的情況下在 GORM 中使用 JSONB 資料?

如何在沒有 postgres.Jsonb 的情況下在 GORM 中使用 JSONB 資料?

Patricia Arquette
Patricia Arquette原創
2024-11-20 02:25:02392瀏覽

How to Work with JSONB Data in GORM without postgres.Jsonb?

在沒有postgres.Jsonb 的GORM 中使用JSONB

在PostgreSQL 中使用GORM 時,您可能會遇到想要儲存陣列的情況作為JSONB 物件的字串。雖然 GORM 為此目的提供了 postgres.Jsonb 類型,但您可能更願意避免使用它。在本文中,我們將探索使用 GORM 操作 JSONB 的替代方法,而不依賴 postgres.Jsonb 類型。

使用 pgtype.JSONB

建議的方法包括利用 pgtype.JSONB,這是 GORM 使用的 pgx 驅動程式提供的類型。 pgtype.JSONB 提供了一種與 JSONB 列互動的簡單有效的方法。以下是範例:

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

擷取JSONB 資料

要從資料庫擷取JSONB 值,請將其指派給變數:

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

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

存儲JSONB資料

要在資料庫中儲存JSONB 值,請使用Set 方法:

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

透過使用pgtype.JSONB,您可以獲得比簡單的靈活性和與各比簡單的靈活性和與各種JSONB 類型的相容性字串陣列。這種方法與 GORM 底層驅動程式的功能一致,確保最佳效能和可靠的資料庫互動。

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

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