sql >> Databáze >  >> NoSQL >> MongoDB

Jak použít typ rozhraní jako model v mgo (Go)?

Z důvodu, který jste uvedli, nemůžete v dokumentu použít rozhraní. Dekodér nemá žádné informace o typu, který má vytvořit.

Jedním ze způsobů, jak to zvládnout, je definovat strukturu, která bude obsahovat informace o typu:

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

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

Na tomto typu implementujte funkci SetBSON. Tato funkce by měla dekódovat typový řetězec, vytvořit hodnotu správného typu na základě tohoto řetězce a zrušit řazení na tuto hodnotu.

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


  1. Nápověda ke struktuře databáze MongoDB a doporučeným postupům

  2. Použijte jeden MongoClient v rámci webové služby JavaEE

  3. Připojení k MongoDB ReplicaSet na Kubernetes

  4. Jak mohu sdílet sbírky MongoDB mezi aplikacemi Meteor?