我有一个结构/模型
public async Task DoSomethingAsync()
{
// Do some stuff
await DoSomethingFromSomeFunction(somestuff);
}
public void DoSomething()
{
DoSomethingAsync().Wait();
}
我可以在postgres中查询
type User struct {
gorm.Model
Name string `gorm:"unique;not null" json:"name"`
Data postgres.Jsonb `json:"data"`
}
如何在jsonB列上为特定键构造查询?我找不到使用模型对象进行查询的任何文档。我知道它可以与原始查询一起使用,但想了解如何使用模型对象(即。)来完成它。
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"}
答案 0 :(得分:1)
在您的示例中,您未指定地图将过滤的字段。试试
db.Find(&users, "data @> ?", map[string]interface{}{"foo": "bar"})
答案 1 :(得分:0)
您可以像这样进行查询:
users := []model.User{}
db.Where("data ->> 'foo' = ?", "bar").Find(&users)
答案 2 :(得分:0)
我不知道这是否适用于jsonp,但是datatypes对我有用,JSON保存为字符串
Add test device