package main
import (
"gopkg.in/mgo.v2"
"log"
"gopkg.in/mgo.v2/bson"
"fmt"
)
type Pay struct {
Id string
Openid string
Pid string
GoodsId int
Money float64
OrderId string
Time int64
Pf string
State int
Param1 string
Param2 string
Param3 string
}
func main() {
session, err := mgo.Dial("192.168.200.115:27017")
if err != nil {
log.Fatal(err)
}
defer session.Close()
session.SetMode(mgo.Monotonic, true)
db := session.DB("test")
c := db.C("pay")
result := Pay{}
err = c.Find(bson.M{"orderId":"55_10_5b962c8d9628071ed440fda261240605"}).One(&result)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)
}
代码如上,当运行,获取到结果如下:
{5b962c8d9628071ed440fda365638606 2448001 555b962c389628071ed440fda192743906 0 1 1536568461 plat_jd 0 }
发现数据缺少orderId数据,而且goodsId数据也不正常,这就奇了个怪了,然后尝试如下修改Pay结构体:
type Pay struct {
Id string
Openid string
Pid string
GoodsId int `bson:"goodsId"`
Money float64
OrderId string `bson:"orderId"`
Time int64
Pf string
State int
Param1 string
Param2 string
Param3 string
}
加上bson后就正常了。由此猜测对于字段是驼峰形式的都要加上bson才能准确识别。