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 .