如何在gorm中追加到字符串数组



我正在尝试使用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"})))

相关内容

  • 没有找到相关文章

最新更新