💻 Tech
If your update operation like UpdateOne
doesn’t take effect, check UpdateResult
object returned from the function. If the count variables like MatchedCount
are 0, one of the reasons, apart from the obvious ones like non-existing document, is that the id used in the filter is not of type primitive.ObjectID
. Probably, you used a string for _id
.
type Personne struct {
ID primitive.ObjectID `bson:"_id"`
}
// ... some code
var personnes []Personne
for cursor.Next(ctx) {
var p Personne
err := cursor.Decode(&p)
if err != nil {
return fmt.Errorf("failed to decode document: %v", err)
}
personnes = append(personnes, p)
}
// ... some code
result, err :=col.UpdateOne(context.TODO(), filter, personne)