【问题标题】:how to fetch the unknown mongo doc via mgo如何通过mgo获取未知的mongo doc
【发布时间】:2014-09-18 20:38:28
【问题描述】:

这是一段试图从 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
}

我收到错误:语法错误:意外变量

这里有什么问题?有没有更好的方法通过 mgo 获取任意 mongo 文档?

谢谢

【问题讨论】:

    标签: mongodb go mgo


    【解决方案1】:

    首先,修正语法错误:

    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() 将结果集中的所有文档检索到一个切片中。将返回类型更改为 map 切片:

    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
    }
    

    【讨论】:

      猜你喜欢
      • 2018-01-02
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 2018-03-26
      • 2020-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多