我仍在学习 go 和 gorm,并按照 gorm 页面本身的教程进行操作(https://gorm.io/docs/advanced_query.html)。据说 Find 和 First 的结果可以存储在 map[string]interface{} 或 []map[string]interface{} 中。但是,在测试此功能时,它似乎不起作用:
package main
import (
"fmt"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/sqlite"
)
const (
dbtech = "sqlite3"
dbname = "test.db"
)
var db *gorm.DB
var err error
type 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() 函数。
阿波罗的战车
跃然一笑
随时随地看视频慕课网APP
相关分类