web-dev-qa-db-fra.com

Comment sélectionner tous les enregistrements d'une collection mongodb dans golang en utilisant mgo

Dans MongoDB, faire quelque chose comme db.mycollection.find() renvoie tous les documents d'une collection.

Lorsque vous travaillez dans GoLang avec le paquet labix.org/v2/mgo , je fais par exemple:

query := db.C("client").Find();

Il se plaint d'avoir besoin d'entrées sous la forme d'une interface. Tout ce que j'ai à faire est de récupérer tous les documents, de les parcourir et de les afficher pour le moment. Comment puis-je obtenir cet effet? Tous les exemples que j'ai vus semblent avoir des filtres en place.

21
Dean

Trouvé une solution:

    var results []client

    err := db.C("client").Find(nil).All(&results)
    if err != nil {
        // TODO: Do something about the error
    } else {
        fmt.Println("Results All: ", results) 
    }
40
Dean
func (uc UserController) GetUsersList(w http.ResponseWriter,r *http.Request,p httprouter.Params){

var u []models.User
// Fetch user
if err := uc.session.DB("mydb").C("users").Find(nil).All(&u); err != nil {

    w.WriteHeader(404)
    fmt.Println("Results All: ", u) 
    return
}
uj, _ := json.Marshal(u)

w.Header().Set("Content-Type", "application/json")
w.WriteHeader(200)
fmt.Fprintf(w, "%s", uj)

}
0
sudheer nunna