以下是试图从mongodb中获取所有文档的代码段。
func fetchAll(db *mgo.Database) map[string]interface {
var msg map[string]interface{}
err := db.C("msg").Find(nil).All(&msg)
if err != nil {
panic(err)
}
return msg
}
我收到错误:语法错误:意外var
这里有什么问题?是否有更好的方法通过mgo获取任意mongo文档?
感谢
答案 0 :(得分:4)
首先,修复语法错误:
func fetchAll(db *mgo.Database) map[string]interface{} {
var msg map[string]interface{}
err := db.C("msg").Find(nil).All(&msg)
if err != nil {
panic(err)
}
return msg
}
注意函数返回类型声明中的{}。
但还有更多。 All()从结果集中检索所有文档到切片。将返回类型更改为一片地图:
func fetchAll(db *mgo.Database) []map[string]interface{} {
var msgs []map[string]interface{}
err := db.C("msg").Find(nil).All(&msgs)
if err != nil {
panic(err)
}
return msgs
}
在我们处理它的同时,让我们返回错误而不是恐慌。
func fetchAll(db *mgo.Database) ([]map[string]interface{}, error) {
var msgs []map[string]interface{}
err := db.C("msg").Find(nil).All(&msgs)
return msgs, err
}