Database

[{_id:ObjectId("67dc90594947be000838f7a7"),persons:[{personId:"61cd90594947be000838f7c1",name:"John Doe",employment:[{employmentId:"61cd9059494abe000838f7c8",type:"Full time",salary:1010101}]},{personId:"61cd90594947be000838f7c2",name:"Jane Austin",employment:[{employmentId:"61cd9059494abe000738f7c1",type:"Part time",salary:11011111}]},]}]

Query

db.collection.update({},[{$set:{tmpPerson:{$arrayElemAt:[{$filter:{input:"$persons",as:"person",cond:{$eq:["$$person.personId","61cd90594947be000838f7c1"]}}},0]}}},{$set:{tmpEmployment:{$arrayElemAt:[{$filter:{input:"$tmpPerson.employment",as:"employment",cond:{$eq:["$$employment.employmentId","61cd9059494abe000838f7c8"]}}},0]}}},{$set:{persons:{$map:{input:"$persons",as:"person",in:{$switch:{branches:[{case:{$eq:["$$person.personId","61cd9059494abe000838f7c8"]},then:{$mergeObjects:["$$person",{employment:{$filter:{input:"$$person.employment",as:"employment",cond:{$eq:["$$employment.employmentId","61cd9059494abe000838f7c8"]}}}}]}},{case:{$eq:["$$person.personId","61cd90594947be000838f7c2"]},then:{$mergeObjects:["$$person",{employment:{$concatArrays:["$$person.employment",["$tmpEmployment"]]}}]}}],default:"$$person"}}}}}},{$unset:["tmpPerson","tmpEmployment"]}])

Result