ホームページ > バックエンド開発 > Golang > postgres.Jsonb を使用せずに GORM で JSONB []string データを効率的に管理する方法は?

postgres.Jsonb を使用せずに GORM で JSONB []string データを効率的に管理する方法は?

Barbara Streisand
リリース: 2024-11-26 08:55:10
オリジナル
836 人が閲覧しました

How to Efficiently Manage JSONB []string Data in GORM without postgres.Jsonb?

[]string を使用した Gorm での JSONB の操作

GORM を使用して文字列のリストを JSONB オブジェクトとして Postgres に保存するには、一般的なアプローチとして GORM のカスタム タイプを利用します。 、postgres.Jsonb。ただし、この依存関係を回避するための代替ソリューションは次のとおりです。

pgtype.JSONB を使用する

GORM の特定の型に依存する代わりに、GORM が次のように使用する pgx パッケージから pgtype.JSONB を実装することを検討してください。そのドライバー。これをモデルに組み込む方法は次のとおりです:

import (
    "github.com/jackc/pgx"
    "github.com/jackc/pgx/pgtype"
)

type User struct {
    gorm.Model
    Data pgtype.JSONB `gorm:"type:jsonb;default:'[]';not null"`
}
ログイン後にコピー

pgtype.JSONB の操作

データベースから実際の文字列リストを取得します:

u := User{}
db.Find(&u)

var data []string
err := u.Data.AssignTo(&data)
if err != nil {
    // Handle error
}
ログイン後にコピー

更新データベース内の文字列のリスト:

u := User{}

err := u.Data.Set([]string{"abc", "def"})
if err != nil {
    // Handle error
}

db.Updates(&u)
ログイン後にコピー

を利用するpgtype.JSONB を使用すると、GORM の postgres.Jsonb 型を使用せずに Go モデル内で JSONB データを操作でき、Postgres で JSONB を操作するためのより直接的かつ柔軟なアプローチが提供されます。

以上がpostgres.Jsonb を使用せずに GORM で JSONB []string データを効率的に管理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート