Database

[{"id":1,"entries":[{"id":100,"urls":{"a":"url-a","b":"url-b","c":"url-c"},"revisions":[]}]}]

Query

db.collection.aggregate([{$set:{entries:{$map:{input:"$entries",in:{$cond:[{$eq:["$$this.id",100]},{$mergeObjects:["$$this",{revisions:{$concatArrays:["$$this.revisions",[{id:100,"urls":{a:"$$this.urls.a",b:"$$this.urls.b",c:"some-new-url"}}]]}}]},"$$this"]}}}}}])

Result