2016-10-10 58 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中的指針和引用。 –