In this example , I changed the Sql driver
to mgo
, I got some confusion. Here, How can I access the inside struct value? like nested struct.
I have two struct,
Author
type Author struct {
ID string `bson:"id"`
Name string `bson:"name"`
Timestamp time.Time
}
Article
type Article struct {
ID bson.ObjectId `bson:"_id,omitempty"`
Title string `bson:"title"`
Content string `bson:"content"`
Author Author `bson:"inline"`
Timestamp time.Time
}
Function
func (m *mgoArticleRepository) FindAll() ([]*models.Article, error) {
result := make([]*models.Article, 0)
sessionCopy := m.Conn.Copy()
defer sessionCopy.Close()
collection := sessionCopy.DB(DBNAME).C(COLLECTION)
err := collection.Find(nil).All(&result)
return result, err
}
Output
Author object return empty (I have data in mongoDB)
[
{
"ID":"5b4f27c187a9e40828422cca",
"Title":"Makan Ayam",
"Content":"Sample values One",
"Author":{
"ID":"",
"Name":"",
"Timestamp":"0001-01-01T00:00:00Z"
},
"Timestamp":"0001-01-01T00:00:00Z"
},
{
"ID":"5b4f27c187a9e40828422ccb",
"Title":"Makan Ikan",
"Content":"Sample values Two",
"Author":{
"ID":"",
"Name":"",
"Timestamp":"0001-01-01T00:00:00Z"
},
"Timestamp":"0001-01-01T00:00:00Z"
},
{
"ID":"5b4f27c187a9e40828422ccc",
"Title":"Makan Sayur",
"Content":"Sample values Three",
"Author":{
"ID":"",
"Name":"",
"Timestamp":"0001-01-01T00:00:00Z"
},
"Timestamp":"0001-01-01T00:00:00Z"
},
{
"ID":"5b4f27c187a9e40828422ccd",
"Title":"Makan Daging",
"Content":"Sample values Four",
"Author":{
"ID":"",
"Name":"",
"Timestamp":"0001-01-01T00:00:00Z"
},
"Timestamp":"0001-01-01T00:00:00Z"
},
{
"ID":"5b4f27c187a9e40828422cce",
"Title":"Makan Indomie",
"Content":"Sample values Five",
"Author":{
"ID":"",
"Name":"",
"Timestamp":"0001-01-01T00:00:00Z"
},
"Timestamp":"0001-01-01T00:00:00Z"
},
{
"ID":"5b4f27c187a9e40828422ccf",
"Title":"Makan Soto",
"Content":"Sample values Six",
"Author":{
"ID":"",
"Name":"",
"Timestamp":"0001-01-01T00:00:00Z"
},
"Timestamp":"0001-01-01T00:00:00Z"
}
]
Here, How can I make the relationship for both structs? Thanks.
change line:
Author Author `bson:"inline"
to
Author Author `bson:"Author"`
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.