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

postgres.Jsonb を使用せずに Gorm で JSONB データを効率的に処理するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-25 03:36:11657ブラウズ

How Can I Efficiently Handle JSONB Data in Gorm Without Using postgres.Jsonb?

postgres.Jsonb を使用しない Gorm および Postgres での JSONB の使用

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 データの読み取りと書き込み

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

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