Database
[{id:1,name:"a"},{id:2,name:"b"},{id:4,name:"c"}]
Query
db.collection.aggregate([{$match:{id:{$in:[1,2,3,4,5]}}},{$group:{_id:null,grouping:{$push:"$$ROOT"}}},{$addFields:{missingVals:{$setDifference:[[1,2,3,4,5],{$map:{input:"$grouping",as:"item",in:"$$item.id"}}]}}},{$project:{result1:{$map:{input:"$grouping",as:"item",in:{id:"$$item.id",name:"$$item.name"}}},result2:{$map:{input:"$missingVals",as:"item",in:{id:"$$item",name:""}}}}},{$project:{result:{$concatArrays:["$result1","$result2"]}}},{$unwind:"$result"},{$replaceRoot:{newRoot:"$result"}},{$sort:{id:1}}])