Database

[{"_id":ObjectId("60db4301db16e85753c4eeef"),"to":"111","messages":[{"from":"222","subMessages":[{"message":"test","date":ISODate("2021-06-29T15:57:53.975Z")}]}]}]

Query

db.collection.update({to:"111"},[{$set:{messages:{$cond:[{$in:["333",{$ifNull:["$messages.from",[]]}]},{$map:{input:"$messages",in:{$mergeObjects:["$$this",{subMessages:{$cond:[{$eq:["$$this.from","333"]},{$concatArrays:["$$this.subMessages",[{message:"test2",date:ISODate("2021-06-29T15:57:53.975Z")}]]},"$$this.subMessages"]}}]}}},{$concatArrays:[{$ifNull:["$messages",[]]},[{from:"333",subMessages:[{message:"test2",date:ISODate("2021-06-29T15:57:53.975Z")}]}]]}]}}}],{upsert:true})

Result