【发布时间】:2018-09-14 16:45:00
【问题描述】:
我有一个结构/模型
type User struct {
gorm.Model
Name string `gorm:"unique;not null" json:"name"`
Data postgres.Jsonb `json:"data"`
}
我可以在 postgres 中查询
db=# select id,name,data from users where data @> '{"foo": "bar"}';
id | name | data
----+-------+------------------
6 | user01 | {"foo": "bar"}
7 | user02 | {"foo": "bar"}
8 | user03 | {"foo": "bar"}
如何针对特定键在 jsonB 列上构造查询?我找不到任何使用模型对象进行查询的文档。我知道它可能与原始查询有关,但想看看如何使用模型对象来完成它。
users := []model.User{}
db.Find(&users, map[string]interface{}{"foo": "bar"})
【问题讨论】:
-
你试过
db.Find(&users, "data @> ?", map[string]interface{}{"foo": "bar"}) -
谢谢,我知道这确实解决了我的问题。
-
好的,那我就添加这个作为答案:)
标签: go-gorm