ホームページ >バックエンド開発 >Golang >postgres.Jsonb を使用せずに GORM で JSONB データを操作するにはどうすればよいですか?

postgres.Jsonb を使用せずに GORM で JSONB データを操作するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-20 02:25:02443ブラウズ

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

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。