How can I migrate updateOne operation with `UpdateOptions ArrayFilters` from mongo-driver v1 to v2?

1 day ago 2
ARTICLE AD BOX

I'm trying to migrate this from mongo-go-driver v1 to v2

filter := bson.D{bson.E{Key: "_id", Value: homeID}} arrayFilters := options.ArrayFilters{Filters: bson.A{bson.M{"x._id": roomID}}} opts := options.UpdateOptions{ ArrayFilters: &arrayFilters } update := bson.M{ "$set": bson.M{ "rooms.$[x].name": updateRoom.Name, }, } _, errUpdate := collHomes.UpdateOne(handler.ctx, filter, update, &opts)

This is my try, but it's not working:

filter := bson.D{bson.E{Key: "_id", Value: homeID}} opts := options.UpdateOptions{ ArrayFilters: bson.A{bson.M{"x._id": roomID}}, } update := bson.M{ "$set": bson.M{ "rooms.$[x].name": updateRoom.Name, }, } _, errUpdate := collHomes.UpdateOne(handler.ctx, filter, update, opts)

because the last line returns this error:

Cannot use opts (type options.UpdateOneOptions) as the type options.Lister[options.UpdateOneOptions] Type does not implement options.Lister[options.UpdateOneOptions] as some methods are missing: List() []func(*options.UpdateOneOptions) error

Read Entire Article