MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Tipo incorporato Golang + MongoDB (incorporando una struttura in un'altra struttura)

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 .