sql >> Database >  >> NoSQL >> MongoDB

Hoe het interfacetype als model te gebruiken in mgo (Go)?

U kunt geen interface in een document gebruiken om de door u genoemde reden. De decoder heeft geen informatie over het aan te maken type.

Een manier om dit aan te pakken is door een struct te definiëren die de type-informatie bevat:

type NodeWithType struct {
   Node Node `bson:"-"`
   Type string
}

type Workflow struct {
   CreatedAt time.Time
   StartedAt time.Time
   CreatedBy string
   Nodes []NodeWithType
}

Implementeer de SetBSON-functie op dit type. Deze functie zou de typestring moeten decoderen, een waarde van het juiste type moeten creëren op basis van die string en naar die waarde moeten unmarsen.

func (nt *NodeWithType) SetBSON(r bson.Raw) error {
}


  1. Paginering aan de serverzijde met een enkel documentreeksarrayveld

  2. MongoDB Aggregatie PHP, Groeperen op Uren

  3. MongoDB:zijn lees-/schrijfbewerkingen naar database gelijktijdig?

  4. Hoe een ingesloten document bijwerken naar een geneste array?