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
.