При использовании mongo-драйвера у меня есть эта структура, которую я передаю функции get в качестве интерфейса {}. Проблема в том, что когда я использую метод Decode, он возвращает карту, пока я ожидал структуру правильного типа. Я нашел похожий вопрос здесь , но решение не сработало для меня, программа вылетает.
type Item struct {
//whatever
}
type mymodel struct {
I interface{}
F interface{}
DatabaseName string
Collection string
}
func Do(){
var item Item
var filter Item
m:= mymodel{I: item, F: filter}
res,_ := get(m)
}
func get(m mymodel) (*interface{}, error) {
c := database.DBCon.Database("whatever").Collection("whatever")
ctx, _ := context.WithTimeout(context.Background(), 5*time.Second)
err := c.FindOne(ctx, m.F).Decode(&m.I)
if err != nil {
log.Log.Info(err)
return nil, err
}
return &m.I, nil
}