MongoDBでは、db.mycollection.find()
のようなことを行うと、コレクション内のすべてのドキュメントが返されます。
パッケージlabix.org/v2/mgoを使用してGoLangで作業する場合、たとえば次のようにします。
query := db.C("client").Find();
インターフェイスの形式での入力が必要であると文句を言います。必要なのは、すべてのドキュメントを取得し、それらを繰り返し処理して、今のところ各ドキュメントを表示することです。この効果を実現するにはどうすればよいですか?私が見たすべての例には、フィルターが設定されているようです。
ソリューションを見つけました:
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)
}
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)
}