2014-07-10 19 views
15

In MongoDB qualcosa come db.mycollection.find() restituisce tutti i documenti in una raccolta.Come si selezionano tutti i record da una collezione mongodb in golang utilizzando mgo

Quando si lavora in GoLang utilizzando il pacchetto labix.org/v2/mgo~~V~~singular~~3rd e fare ad esempio:

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

Si lamenta che richiede in ingresso sotto forma di un'interfaccia. Tutto quello che devo fare è recuperare tutti i documenti e scorrere tra loro e visualizzarne uno per ora. Come ottengo questo effetto? Tutti gli esempi che ho visto sembrano avere filtri sul posto.

risposta

32

trovato una soluzione:

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) 
    } 
+13

ottenere nil da un database è una ragione debole per 'panic' –

+4

però otterrà l'utente del codice di cui sopra per leggere in realtà e decidere come affrontare il' nil '. Dal punto di vista di qualcuno che viene qui e copia/incolla che il codice è altamente probabile, questo è un buon modo per farli almeno pensare a questo ... – amlwwalker

+0

@amlwwalker Rettificato il codice, rimosso il panico –