Наткнулся на замечательную библиотечку https://github.com/facebookgo/mongoschema
Генерирует по содержимому коллекции golang структуры, сразу с bson тегами, чтобы использовать с mgo
Лёгкий пример, с плоскими данными:
◼ ▶ $GOPATH/bin/mongoschema -url=localhost -db=test -collection=users -struct=User -package=main
package main
type User struct {
Google string `bson:"google,omitempty"`
ID bson.ObjectId `bson:"_id,omitempty"`
Email string `bson:"email,omitempty"`
DisplayName string `bson:"displayName,omitempty"`
Picture string `bson:"picture,omitempty"`
}
Для данных с разной структурой будет выдана невалидная структура, в которой нужно самостоятельно выбрать проблемные участки. Работает только с флагом -raw