MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да използвам типа интерфейс като модел в mgo (Go)?

Не можете да използвате интерфейс в документ поради причината, която отбелязахте. Декодерът няма информация за типа, който да създаде.

Един от начините да се справите с това е да дефинирате структура, която да съдържа информацията за типа:

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

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

Приложете функцията SetBSON за този тип. Тази функция трябва да декодира низа от типа, да създаде стойност от правилния тип въз основа на този низ и да демаршалира до тази стойност.

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Какво е предимството да използвате ObjectId вместо обикновен низ?

  2. препоръчителен начин за инсталиране на mongodb на еластично бобено стъбло

  3. Отговорете на главата на информацията и добавете извлечен масив към същия резултат

  4. Spring Boot настройка на MongoDB хранилище

  5. Добавете уникален само към масива и запазете броя на полето при актуализиране