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

mgo 中的错误:结果没有字段或方法

mgo 中的错误:结果没有字段或方法

Go
喵喵时光机 2021-06-03 10:02:44
我有以下代码package mainimport (    "encoding/json"    "fmt"    "labix.org/v2/mgo"    "labix.org/v2/mgo/bson")func insertEntry(j *map[string]interface{}, entry string) {    err := json.Unmarshal([]byte(entry), j)    if err != nil {        panic(err)    }}func main() {    c1 := `{    "mw" : 42.0922,        "ΔfH°gas" : {          "value" : 372.38,          "units" : "kJ/mol"        },        "S°gas" : {          "value" : 216.81,          "units" : "J/mol×K"        },        "index" : [          {"name" : "mw", "value" : 42.0922},          {"name" : "ΔfH°gas", "value" : 372.38},          {"name" : "S°gas", "value" : 216.81}        ]        }`    c2 := `{    "name": "silicon",    "mw": 32.1173,    "index": [    {        "name": "mw",        "value": 32.1173    }    ]    }`    var m map[string]interface{}    insertEntry(&m, c1)    insertEntry(&m, c2)    chemical := m["ΔfH°gas"].(map[string]interface{})    fmt.Println("value: ", chemical["value"].(float64))    fmt.Println("units: ", chemical["units"].(string))    session, err := mgo.Dial("localhost")    if err != nil {        panic(err)    }    defer session.Close()    // Optional. Switch the session to a monotonic behavior.    session.SetMode(mgo.Monotonic, true)    c := session.DB("test").C("chemicals")    err = c.Insert(&m)    if err != nil {        panic(err)    }    result := &m    err = c.Find(bson.M{"name": "silicon"}).One(&result)    if err != nil {        panic(err)    }    fmt.Println(result)    fmt.Println("mw:", result.mw)}并得到以下错误$ go run chemeo.go# command-line-arguments./chemeo.go:78: result.mw undefined (type *map[string]interface {} has no field or method mw)我怎么能打印出 mw?
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

不幸的是,我从未使用过 mgo,但查看错误消息,我可能会尝试

fmt.Println("mw:", result["mw"])


查看完整回答
反对 回复 2021-06-07
  • 2 回答
  • 0 关注
  • 221 浏览
慕课专栏
更多

添加回答

举报

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