Ik denk dat het gebruik van de inline
field tag is de beste optie voor jou. In de mgo/v2/bson-documentatie staat:
inline Inline the field, which must be a struct or a map,
causing all of its fields or keys to be processed as if
they were part of the outer struct. For maps, keys must
not conflict with the bson keys of other struct fields.
Je structuur moet dan als volgt worden gedefinieerd:
type Cube struct {
Square `bson:",inline"`
Depth int
}
Bewerken
inline
bestaat ook in mgo/v1/bson
voor het geval je die gebruikt.