Database
[{job_id:"1",technologiesStack:[{technology:1,yearsOfExperience:4},{technology:3,yearsOfExperience:1}]},{job_id:"3",technologiesStack:[{technology:1,yearsOfExperience:15},{technology:3,yearsOfExperience:15}]},{job_id:"2",technologiesStack:[{technology:1,yearsOfExperience:6},{technology:2,yearsOfExperience:1}]}]
Query
db.collection.aggregate([{$match:{"technologiesStack.technology":{$all:[1,3]}}},{$addFields:{matched:{$filter:{input:"$technologiesStack",as:"tech",cond:{$lte:["$$tech.yearsOfExperience",{"$getField":{"field":"yearsOfExperience","input":{"$arrayElemAt":[{$filter:{input:[{technology:1,yearsOfExperience:6},{technology:3,yearsOfExperience:15}],as:"userTech",cond:{"$eq":["$$userTech.technology","$$tech.technology"]}}},0]}}}]}}}}},{$match:{$expr:{$eq:[{$size:"$matched"},{$size:"$technologiesStack"}]}}}])