Я написал простую программу с golang и mgo. Мой вопрос в том, как правильно отношения в mgo.
1-й подход:
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"`
}
«Друзья» — это часть пользователей. Я могу $push указатель на пользователя, и он просто отлично работает. Дело в том, что я хочу только сохранить ссылку на пользователя, а не вкладывать его:
2-й подход:
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 какой-то механизм для решения этой проблемы?