Golang で Postgres を操作する場合、多くの場合、JSONB データ型を操作する必要があります。 Go の ORM (オブジェクト リレーショナル マッピング) ライブラリである Gorm は、データベースと対話するための便利な API を提供します。ただし、JSONB を処理するためのデフォルトのアプローチでは、専用の postgres.Jsonb 型を使用する必要があります。
この型をモデル内で直接使用することを避けるには、代わりに pgtype.JSONB を利用することを検討してください。このタイプは、Gorm の基礎となるドライバーである pgx のコンパニオン ライブラリである pgtype パッケージによって提供されます。 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 の操作に伴う制限や潜在的な複雑さを回避できます。
以上がpostgres.Jsonb を使用せずに Gorm で JSONB データを効率的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。