Database
db={students:[{"_id":{"$oid":"61c32b08c6056d28db6550b5"},"name":"Jack Sparrow","course1":{"$oid":"82d77b08c6056d28db65ca98"},"course2":{"$oid":"45d22b08c6056d28db688013"},"course3":{"$oid":"98a72b08c6056d28db6561d6"},"course4":{"$oid":"10b22b08c6056d28db6576b1"}}],courses:[{"_id":{"$oid":"82d77b08c6056d28db65ca98"},name:"English"},{"_id":{"$oid":"45d22b08c6056d28db688013"},name:"Physics"}]}
Query
db.students.aggregate([{$lookup:{"from":"courses","let":{courses:{$reduce:{input:{$filter:{input:{$objectToArray:"$$ROOT"},cond:{"$regexMatch":{"input":"$$this.k","regex":"^course[\\d]$"}}}},initialValue:[],in:{$concatArrays:["$$value",["$$this.v"]]}}}},"pipeline":[{$match:{$expr:{$in:["$_id","$$courses"]}}}],"as":"studentCourses"}}])