Вы должны взглянуть на встроенный флаг bson-пакета (который описан в bson.Marshal ). Это должно позволить вам сделать что-то вроде этого:
type adminUser struct {
User `bson:",inline"`
Secret string `json:"secret,omitempty" bson:"secret,omitempty"`
}
Однако теперь вы заметите, что при попытке прочитать из базы данных с этой структурой вы получаете повторяющиеся ключевые ошибки, поскольку оба adminUser
и User
содержат ключ secret
.
В вашем случае я удалил бы поле Secret
из User
и имел бы только тот, что был в adminUser
. Затем, когда вам нужно писать в поле secret
, убедитесь, что вы используете adminUser
.