web-dev-qa-db-ja.com

mgoを使用してgolangのmongodbコレクションからすべてのレコードを選択する方法

MongoDBでは、db.mycollection.find()のようなことを行うと、コレクション内のすべてのドキュメントが返されます。

パッケージlabix.org/v2/mgoを使用してGoLangで作業する場合、たとえば次のようにします。

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

インターフェイスの形式での入力が必要であると文句を言います。必要なのは、すべてのドキュメントを取得し、それらを繰り返し処理して、今のところ各ドキュメントを表示することです。この効果を実現するにはどうすればよいですか?私が見たすべての例には、フィルターが設定されているようです。

21
Dean

ソリューションを見つけました:

    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) 
    }
41
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