英文:
Golang Mgo - How to view result?
问题
看起来我能够成功连接到我的Mongo数据库。我能够看到我的集合中有30条记录。但是我该如何查看这些记录呢?
package main
import (
	"fmt"
	"net/http"
	"github.com/gorilla/mux"
	"gopkg.in/mgo.v2"
	"gopkg.in/mgo.v2/bson"
)
type User struct {
	id        bson.ObjectId `json:"-" bson:"_id"`
	firstName string        `json:"first_name"`
	lastName  string        `json:"last_name"`
	email     string        `json:"email"`
	regId     string        `json:"registration_id"`
	regKey    string        `json:"registration_key"`
	password  string        `json:"password"`
}
func main() {
	session, err := mgo.Dial("XXX.XXX.XXX.XXX")
	if err != nil {
		panic(err)
	}
	defer session.Close()
	session.SetMode(mgo.Monotonic, true)
	//res := []User{}
	c := session.DB("cd").C("auth_user")
	res := []User{}
	fmt.Println(c.Find(bson.M{}).All(&res))
	fmt.Println(len(res))
	fmt.Println(res)
	fmt.Println(res[0])
	fmt.Println(res[0].email)
}
以上代码的输出为:
<nil>
30
[{      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      }]
英文:
It looks like I'm able to successfully connect to my Mongo Database. I'm able to view that there are 30 records in my collection. How do I actually view the records though?
enter code here
package main
import (
    "fmt"
	"net/http"
	"github.com/gorilla/mux"
	"gopkg.in/mgo.v2"
	"gopkg.in/mgo.v2/bson"
)
type User struct {
    id        bson.ObjectId `json:"-" bson:"_id"`
	firstName string        `json:"first_name"`
	lastName  string        `json:"last_name"`
	email     string        `json:"email"`
	regId     string        `json:"registration_id"`
	regKey    string        `json:"registration_key"`
	password  string        `json:"password`
}
func main() {
    session, err := mgo.Dial("XXX.XXX.XXX.XXX")
    if err != nil {
	panic(err)
}
defer session.Close()
session.SetMode(mgo.Monotonic, true)
//res := []User{}
c := session.DB("cd").C("auth_user")
res := []User{}
fmt.Println(c.Find(bson.M{}).All(&res))
fmt.Println(len(res))
fmt.Println(res)
fmt.Println(res[0])
fmt.Println(res[0].email)
}
The output of the above is:
<nil>
30
[{      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      } {      }]
答案1
得分: 6
你需要导出字段名。
type User struct {
  ID        bson.ObjectId `json:"-" bson:"_id"`
  FirstName string        `json:"first_name"`
  LastName  string        `json:"last_name"`
  Email     string        `json:"email"`
  RegId     string        `json:"registration_id"`
  RegKey    string        `json:"registration_key"`
  Password  string        `json:"password"`
}
BSON编解码器会忽略未导出的字段。
英文:
You need to export the field names.
type User struct {
  ID        bson.ObjectId `json:"-" bson:"_id"`
  FirstName string        `json:"first_name"`
  LastName  string        `json:"last_name"`
  Email     string        `json:"email"`
  RegId     string        `json:"registration_id"`
  RegKey    string        `json:"registration_key"`
  Password  string        `json:"password`
}
The BSON codec ignores unexported fields.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论