Database
db={Patterns:[{"idPattern":1,"name":"name1","description":"desc1"},{"idPattern":2,"name":"name2","description":"desc2"},{"idPattern":3,"name":"name3","description":"desc3"},{"idPattern":4,"name":"name4","description":"desc4"}],SelectedPatterns:[{"user":"user1","idPatterns":[1,2]},{"user":"user2","idPatterns":[2,3]}]}
Query
db.SelectedPatterns.aggregate([{$match:{user:"user1"}},{$lookup:{from:"Patterns",localField:"idPatterns",foreignField:"idPattern",as:"pattern_details"}},{$unwind:"$pattern_details"},{$replaceRoot:{newRoot:"$pattern_details"}},{$project:{_id:0}}])