首页 > 后端开发 > Golang > 正文

如何在没有 postgres.Jsonb 的情况下在 GORM 中使用 JSONB 数据?

Patricia Arquette
发布: 2024-11-20 02:25:02
原创
395 人浏览过

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

在没有 postgres.Jsonb 的 GORM 中使用 JSONB

在 PostgreSQL 中使用 GORM 时,您可能会遇到想要存储数组的情况作为 JSONB 对象的字符串。虽然 GORM 为此目的提供了 postgres.Jsonb 类型,但您可能更愿意避免使用它。在本文中,我们将探索使用 GORM 操作 JSONB 的替代方法,而不依赖于 postgres.Jsonb 类型。

使用 pgtype.JSONB

推荐的方法包括利用 pgtype.JSONB,这是 GORM 使用的 pgx 驱动程序提供的类型。 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板