Sie sollten sich das Inline-Flag des bson-Pakets ansehen (das unter bson.Marshal dokumentiert ist). Es sollte Ihnen erlauben, so etwas zu tun:
type adminUser struct {
User `bson:",inline"`
Secret string `json:"secret,omitempty" bson:"secret,omitempty"`
}
Jetzt werden Sie jedoch feststellen, dass Sie doppelte Schlüsselfehler erhalten, wenn Sie versuchen, mit dieser Struktur aus der Datenbank zu lesen, da sowohl adminUser
und User
enthalten den Schlüssel secret
.
In Ihrem Fall würde ich das Secret
entfernen Feld von User
und haben nur den einen in adminUser
.Dann wann immer Sie in das secret
schreiben müssen Stellen Sie sicher, dass Sie einen adminUser
verwenden .