Você deve dar uma olhada no sinalizador embutido do pacote bson (que está documentado em bson.Marshal). Ele deve permitir que você faça algo assim:
type adminUser struct {
User `bson:",inline"`
Secret string `json:"secret,omitempty" bson:"secret,omitempty"`
}
No entanto, agora você notará que obtém erros de chave duplicada ao tentar ler do banco de dados com essa estrutura, pois tanto
adminUser e User contém a chave secret . No seu caso, eu removeria o
Secret campo de User e só tem um em adminUser .Então sempre que você precisar escrever no secret campo, certifique-se de usar um adminUser .