Database

db={"common":[{"_id":100,"name":{"firstName":"Kevin","lastName":"Alter"},"gender":"male"}],"user":[{"_id":200,"userId":100,"userNumber":"U-200","userType":"U"}],"contract":[{"_id":300,"userNumber":"U-200","userType":"U","voiceNumber":"700000000"},{"_id":301,"userNumber":"U-200","userType":"U","voiceNumber":"700000001"},{"_id":302,"userNumber":"U-200","userType":"U","voiceNumber":"700000000"}]}

Query

db.common.aggregate([{$match:{"name.firstName":"Kevin"}},{$lookup:{from:"user",localField:"_id",foreignField:"userId",as:"userDetails"}},{$unwind:{path:"$userDetails",includeArrayIndex:"0",preserveNullAndEmptyArrays:true}},{$match:{"userDetails.userType":{$in:["U"]}}},{$lookup:{from:"contract",localField:"userDetails.userNumber",foreignField:"userNumber",as:"contractDetails"}},{$unwind:"$contractDetails"},{$group:{"_id":"$contractDetails.voiceNumber","field":{"$first":"$$ROOT"}}},{$group:{"_id":"$field._id","userDetails":{"$first":"$field.userDetails"},"gender":{"$first":"$field.gender"},"name":{"$first":"$field.name"},"0":{"$first":"$field.0"},"contractDetails":{"$push":"$field.contractDetails"}}}])

Result