2016-10-10 46 views
0

我有下一期.. 我无法从我的mongo数据库(运行在docker包含器中)获取所有记录,这里是我真正的简单代码:mgo collection.Find(nil).All(&users)not working

type User struct { 
    Email string `json:"email" bson:"email"` 
    Pass string `json:"pass" bson:"pass"` 
} 

session := dbConnect() 
collection := session.DB("my_db").C("users") 
var users []User 
err := collection.Find(nil).All(&users) 
if err != nil { 
    log.Fatal("Mongo collection find fail: ", err) 
} 
fmt.Println("Results >> ", err) 

事情是“err”返回<nil>。奇怪的是,在数据库上插入文档实际上起作用。谢谢!

+2

什么'fmt.Println(“用户>>”,用户)'打印? –

+0

它打印“''”“ –

+0

well 是一个空片的零值,并且没有错误,所以看起来你的集合'用户'是空的 –

回答

1

你的代码没有问题,但最后一行fmt.Println("Results >> ", err),不应该是fmt.Println("Results >> ", users)

你也可以检查,如果集合不为空和领域都是正确的使用接口

session := dbConnect() 
    collection := session.DB("my_db").C("users") 
    var v []interface{} 
    err := collection.Find(nil).All(&v) 
    if err != nil { 
     log.Fatal("Mongo collection find fail: ", err) 
    } 
    fmt.Println("Results >> ", v) 
+0

你是对的,谢谢。我只是习惯Go中的指针和引用。 –