Database

[{_id:1,"key":1},{_id:2,"key":2}]

Query

db.collection.update({_id:1},[{$set:{result:{$cond:{if:{$eq:[{$size:{$objectToArray:"$$ROOT"}},1]},then:{$mergeObjects:["$$ROOT",{key:3}]},else:"$$ROOT"},}}},{$replaceRoot:{newRoot:"$result"}}],{upsert:true})

Result