如何在使用mgo的golang中选择mongodb集合中的所有记录?

huangapple go评论80阅读模式
英文:

How do you select all records from a mongodb collection in golang using mgo

问题

在MongoDB中,执行类似db.mycollection.find()的操作会返回集合中的所有文档。

在使用Go语言的labix.org/v2/mgo包时,如果我执行以下操作:

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

它会报错,要求以接口的形式提供输入。我只需要检索所有文档并遍历它们,目前不需要任何筛选条件。我该如何实现这个效果?我看到的所有示例似乎都有筛选条件。

英文:

In MongoDB doing something like db.mycollection.find() returns all documents in a collection.

When working in GoLang using the package labix.org/v2/mgo and I do for example:

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

It complains that it requires input in the form of an interface. All I need to do is retrieve all documents and iterate through them and display each one for now. How do I achieve this effect? All examples I have seen seem to have filters in place.

答案1

得分: 47

找到了一个解决方案:

	var results []client

	err := db.C("client").Find(nil).All(&results)
	if err != nil {
		// TODO: 对错误进行处理
	} else {
	    fmt.Println("全部结果:", results) 
    }
英文:

Found a 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) 
    }

答案2

得分: 0

func (uc UserController) GetUsersList(w http.ResponseWriter, r *http.Request, p httprouter.Params) {

var u []models.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)

}

英文:
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)

}

huangapple
  • 本文由 发表于 2014年7月10日 23:53:30
  • 转载请务必保留本文链接:https://go.coder-hub.com/24681047.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定