Gorm 空查找到地图

Gorm empty Find to Map

我目前正在使用 gorm 在 GO 中查询 MySql 数据库。我正在查询一个 table,我只知道它的名字,其他一无所知。出于这个原因,我从查询 []map[string]interface{} 中 return,如 gorm 文档中所建议的那样(Find To Map,https://gorm.io/docs/advanced_query.html#Find-To-Map)。

我有以下问题:查询 returns 正确的元素数,但是是空映射(例如 [map[] map[] map[] map[]])。我不知道如何解决这个问题,有人可以帮助我了解问题所在吗?

谢谢。

编辑

代码示例:

db, err := gorm.Open("mysql", "connection_to_my_db")
[...]
var results []map[string]interface{}
err := db.Table("MyTable").Where("condition = ?", id).Find(&results).Error
if err != nil {
    return nil, err
}
[...]

确保您使用的是 Gorm V2

git 发布标签 1.2。 Gorm V1 不支持查找到地图。查看此处有关如何升级 https://gorm.io/docs/v2_release_note.html#How-To-Upgrade

的说明
var results []map[string]interface{}
db.Table("MyTable").Where("condition = ?","foo").Find(&results)
// This "pretty" prints it to the console
b, _:= json.MarshalIndent(results, "", "    ")
fmt.Println(string(b))

我遇到了同样的问题,我的gorm是v1.9.x 但是 Find 到 struct 就可以了,到 map 会得到 map[] 和正确的 num of result