Database
[{"bookingReference":"225360","portOfDestination":"TRKSP","contactPerson":"FAHRI YUMUSAK TRANS.","cargoDetails":[{"quantity":"123","unitType":"123","cargoDescription":"123","cargoGrossWeight":123}],"passengerDetails":[{"quantity":"123","unitType":"123","passengerDescription":"123"},{"quantity":"1234","unitType":"1234","passengerDescription":"1234"}]},{"bookingReference":"225360","portOfDestination":"TRKSP","contactPerson":"FAHRI YUMUSAK TRANS.","cargoDetails":[{"quantity":"123","unitType":"123","cargoDescription":"123","cargoGrossWeight":123}],"passengerDetails":[]}]
Query
db.collection.aggregate([{$set:{passengerDetails:{$map:{input:"$passengerDetails",as:"pd",in:{$mergeObjects:["$$pd",{"contactPerson":"$contactPerson"}]}}}}},{"$set":{"passengerDetails":{"$cond":{"if":{$eq:[{$ifNull:["$passengerDetails",[]]},[]]},"then":[{"contactPerson":"$contactPerson"}],"else":"$passengerDetails"}}}},{"$merge":{"into":"collection","on":"_id"}}])