为了账号安全,请及时绑定邮箱和手机立即绑定

格尔姆模型和表格功能

格尔姆模型和表格功能

Go
阿波罗的战车 2022-08-15 16:29:13
我仍在学习 go 和 gorm,并按照 gorm 页面本身的教程进行操作(https://gorm.io/docs/advanced_query.html)。据说 Find 和 First 的结果可以存储在 map[string]interface{} 或 []map[string]interface{} 中。但是,在测试此功能时,它似乎不起作用:package mainimport (    "fmt"    "github.com/jinzhu/gorm"    _ "github.com/jinzhu/gorm/dialects/sqlite")const (    dbtech = "sqlite3"    dbname = "test.db")var db *gorm.DBvar err errortype TestStruct struct {    Name string}func main() {    db, err = gorm.Open(dbtech, dbname)    defer db.Close()    db.AutoMigrate(&TestStruct{})    db.Create(&TestStruct{Name: "Alice"})    db.Create(&TestStruct{Name: "Bob"})    structResults := []TestStruct{}    db.Find(&structResults)    fmt.Println(structResults)    var mapResult map[string]interface{}    db.Model(&TestStruct{}).First(&mapResult)    for k, v := range mapResult {        fmt.Println(k, " - ", v)    }    fmt.Println(mapResult)    var mapResults []map[string]interface{}    db.Model(&TestStruct{}).Find(&mapResults)    for k, v := range mapResult {        fmt.Println(k, " - ", v)    }    fmt.Println(mapResult)}输出为:[{Alice} {Bob}]map[]map[]我做错了什么吗?还是此功能不再可用?编辑:它不能同时使用 Model() 和 Table() 函数。
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

我注意到您正在浏览Gorm V2文档,但正在导入Gorm V1。

您应将导入更改为:

"gorm.io/gorm"
_ "gorm.io/driver/sqlite"

这将使代码按预期工作。

如果您无法升级 Gorm 版本,则必须将结果存储在结构或结构切片上。


查看完整回答
反对 回复 2022-08-15
  • 1 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信