Написах проста програма с golang и mgo. Въпросът ми е как правилно да се правят връзки в mgo.
Първи подход:
type User struct {
Id bson.ObjectId `json:"_id,omitempty" bson:"_id,omitempty"`
Username string `json:"username" bson:"username"`
Email string `json:"email" bson:"email"`
Password string `json:"password" bson:"password"`
Friends []User `json:"friends" bson:"friends"`
}
„Приятели“ е част от потребителите. Мога да $бутна указател към потребител и той просто работи добре. Работата е там, че искам само да съхранявам препратка към потребителя, а не да го влагам:
Втори подход:
type User struct {
Id bson.ObjectId `json:"_id,omitempty" bson:"_id,omitempty"`
Username string `json:"username" bson:"username"`
Email string `json:"email" bson:"email"`
Password string `json:"password" bson:"password"`
Friends []bson.ObjectId `json:"friends" bson:"friends"`
}
Това ми дава изхода, който искам - но сега не се вижда от структурата кои вложени структури са посочени. mgo предоставя ли някакъв механизъм за справяне с това?