Dovresti dare un'occhiata al flag inline del pacchetto bson (che è documentato in bson.Marshal). Dovrebbe permetterti di fare qualcosa del genere:
type adminUser struct {
User `bson:",inline"`
Secret string `json:"secret,omitempty" bson:"secret,omitempty"`
}
Tuttavia, ora noterai che ottieni errori di chiave duplicati quando provi a leggere dal database con questa struttura, poiché entrambi adminUser
e User
contengono la chiave secret
.
Nel tuo caso rimuoverei il Secret
campo da User
e avere solo quello in adminUser
.Poi ogni volta che hai bisogno di scrivere al secret
campo, assicurati di utilizzare un adminUser
.