postgres.Jsonb を使用せずに GORM で JSONB を操作する
PostgreSQL で GORM を利用する場合、配列を保存したい状況が発生することがあります。文字列を JSONB オブジェクトとして取得します。 GORM はこの目的のために postgres.Jsonb タイプを提供していますが、これを使用しない方がよい場合もあります。この記事では、postgres.Jsonb 型に依存せずに GORM を使用して JSONB を操作するための代替方法を検討します。
pgtype.JSONB を使用する
推奨されるアプローチは次のとおりです。 GORM で使用される pgx ドライバーによって提供される型である pgtype.JSONB を利用します。 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 中国語 Web サイトの他の関連記事を参照してください。