Golang Mgo - Как посмотреть результат?

Похоже, я могу успешно подключиться к своей базе данных Mongo. Я могу просмотреть, что в моей коллекции 30 записей. Как я на самом деле просматривать записи?

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

Результат приведенного выше: 30 [{ } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { } { }]


person Louis T.    schedule 27.10.2016    source источник


Ответы (1)


Вам необходимо экспортировать имена полей.

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 игнорирует неэкспортированные поля.

person Cerise Limón    schedule 27.10.2016
comment
Это верно. Не забудьте щелкнуть ссылку при экспорте в слово. Это объясняет, почему поля, имена которых начинаются с нижней буквы, не экспортируются. - person lofcek; 28.10.2016