首页 > 解决方案 > go-pg:将数据推送到现有数组

问题描述

我想使用 go-pg 向 postgres db 中的字符串数组添加一个新值。如何使用 go-pg 将新值推送到数组。

这是我的用户模型

type User struct {
    ID        string    `pg:"id,notnull,unique" json:"id"`
    Email     string    `pg:"email,notnull,unique" json:"email"`
    Skills    []string  `pg:"skills,array" json:"skill"`
}

每当用户使用用户 ID 添加新技能时,我都想更新技能数组。

来自客户端的数据包含用户 ID 和用户选择的单个技能。

go-pg我们可以通过以下方式更新列

pg.Model(user).Set("data = ?data").Where("id = ?id").Update()

但是我怎样才能将新数据推送到数组中呢?

标签: sqlpostgresqlgoormgo-pg

解决方案


正如云洛所说,我已经完成了array_append

pg.Exec(`UPDATE users SET skills = array_append(skills, 'skill') WHERE id = 'id';`)

推荐阅读