В моей коллекции баз данных MongoDB я храню такие продукты:
{
"_id":{
"$oid":"5e87388e622a7a973148cf15"
},
"tags":[
"foo",
"bar",
"baz"
]
}
, которые я хотел бы распаковать так:
type Product struct {
Tags []string `bson:"tags" json:"tags"`
}
и когда я пытаюсь получить это
ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
client, err := mongo.Connect(ctx, options.Client().ApplyURI("correct-address"))
if err != nil {
log.Fatal(err)
return
}
collection := client.Database("products").Collection("products")
cursor, err := collection.Find(ctx, bson.M{})
if err != nil {
log.Fatal(err)
fmt.Fprint(w, err)
return
}
defer cursor.Close(ctx)
products := []Product{}
for cursor.Next(ctx) {
var nextOne Product
err := cursor.Decode(&nextOne)
if err != nil {
log.Fatal(err)
}
products = append(products, nextOne)
}
Я получаю сообщение об ошибке
cannot decode document into []string
Кто-нибудь знает, что я здесь не так делаю?
========= ===== решено
Оказывается, у меня есть один документ в коллекции, который будет иметь "теги": {}