使用 PostgreSQL 数组
pgdialect
支持使用 array
结构体字段标签的 PostgreSQL 一维数组
type Article struct {
ID int64
Tags []string `bun:",array"`
}
要将 PostgreSQL 数组扫描到变量中,请使用 pgdialect.Array
import "github.com/uptrace/bun/dialect/pgdialect"
var tags []string
err := db.NewSelect().
Model((*Article)(nil)).
ColumnExpr("tags").
Where("id = 1").
Scan(ctx, pgdialect.Array(&tags))
您也可以使用 pgdialect.Array
插入/更新数组
res, err := db.NewUpdate().
Model(&article).
Set("tags = ?", pgdialect.Array([]string{"foo", "bar"})).
WherePK().
Exec(ctx)
或在 Where
子句中
q.Where("tags @> ?", pgdialect.Array([]string{"foo"}))