Database

[{"_id":"accountId 1","codes":[{"key":"advantageCode 1","dateBegin":"01/02/2012","dateEnd":"01/02/2013"},{"key":"advantageCode 2","dateBegin":"01/02/2012","dateEnd":"01/02/2013"}]}]

Query

db.collection.update({"_id":"accountId 1"},[{$set:{codes:{$cond:[{$in:["advantageCode 2","$codes.key"]},{$map:{input:"$codes",in:{$mergeObjects:["$$this",{$cond:[{$eq:["$$this.key","advantageCode 2"]},{"dateBegin":"01/02/2020","dateEnd":"01/02/2021"},{}]}]}}},{$concatArrays:["$codes",[{"key":"advantageCode 2","dateBegin":"01/02/2022","dateEnd":"01/02/2023"}]]}]}}}])

Result