Du kan ikke bruge en grænseflade i et dokument af den grund, du har noteret. Dekoderen har ingen information om den type, der skal oprettes.
En måde at håndtere dette på er at definere en struktur til at indeholde typeinformationen:
type NodeWithType struct {
Node Node `bson:"-"`
Type string
}
type Workflow struct {
CreatedAt time.Time
StartedAt time.Time
CreatedBy string
Nodes []NodeWithType
}
Implementer SetBSON-funktionen på denne type. Denne funktion skal afkode typestrengen, skabe en værdi af den korrekte type baseret på den streng og afkode til denne værdi.
func (nt *NodeWithType) SetBSON(r bson.Raw) error {
}