有一段比较特殊的数据 使用的是 postgresql jsonb 来存储,然后我构建一段原生 SQL 来执行查询 ,现在不太清楚如何获得查询结果,因为查询出来的字段是不确定的。
想问问,gorm 能不能 scan 到一个 map 上去?
type DataTest struct {
BaseModel
Data postgres.Jsonb
}
queryStr = `select ` + queryStr + ` from ` + TABLENAME + ` t ` +
` join lateral jsonb_array_elements(t.data) obj(value) on ` +
` obj.value->>'id' = '` + util.Uint2Str(userID) + `' where data @> '[{"id":` + util.Uint2Str(userID) + `}]';`
rows, _ := DB.Self.Raw(queryStr).Rows() // (*sql.Rows, error)
defer rows.Close()
d := &DataTest{}
for rows.Next() {
rows.Scan(&d.Data) //这样是无法得到结果的,不知道应该怎么操作。
}
原生 sql 可以正常查询,求助。