带
带
我正在尝试使用gorm 添加数组数据类型
type Token struct {
Base
Tags pq.StringArray json:"tags"
}
使用
t.DB.Model(&database.Token{}).Where("address = ?", address).Update(&database.Token{Tags: ["1","2"],})
但是,我无法将新标签附加到数据中。它正在被替换。。知道吗??
您的代码不追加,而是用["1","2"]
替换Tags
字段
为了将新标签附加到现有标签上,您可以按照以下方式进行操作:
// read row
t.DB.Model(&database.Token).Where("address = ?", address)
// append new tags
newTags := append(database.Token.Tags, "1", "2")
// update database
t.DB.Model(&database.Token).Update("tags", newTags)
是否有mpromonet
声明要替换标记,但不附加在现有标记上
以下是如何修改现有的Update语句以使其在中工作
更新Token结构定义
Tags pq.StringArray `gorm:"type:text[]" json:"tags"`
带array_cat
功能
t.DB.Model(&database.Token{})
.Where("address = ?", address)
.Update("tags", gorm.Expr("array_cat(tags, ?)", pq.Array([]string{"3","4"})))
带||
运算符
t.DB.Model(&database.Token{})
.Where("address = ?", address)
.Update("tags", gorm.Expr("tags || ?", pq.Array([]string{"3","4"})))