Database

db={"Gateway":[{"_id":ObjectId("5e2b541ed02e05b6940de110"),"gateway":1},{"_id":ObjectId("5e2b5425d02e05b6940de1b5"),"gateway":2},{"_id":ObjectId("5e2b5430d02e05b6940de277"),"gateway":3}],"Alarms":[{"_id":ObjectId("5e2b5499d02e05b6940dec46"),"Alarms":[{"Gateway":ObjectId("5e2b541ed02e05b6940de110"),"Port":1},{"Gateway":ObjectId("5e2b5425d02e05b6940de2fb"),"Port":2},{"Gateway":ObjectId("5e2b5425d02e05b6940de1b5"),"Port":3}]}]}

Query

db.Alarms.aggregate([{$unwind:"$Alarms"},{$lookup:{from:"Gateway",localField:"Alarms.Gateway",foreignField:"_id",as:"Alarms.GatewayObj"}},{$addFields:{"Alarms.Gateway":{$cond:[{$ne:["$Alarms.GatewayObj",[]]},{$arrayElemAt:["$Alarms.GatewayObj",0]},"$Alarms.Gateway"]}}},{$project:{"Alarms.GatewayObj":0}},{$group:{_id:"$_id",Alarms:{$push:"$Alarms"}}}])

Result