在沒有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中文網其他相關文章!