Database
db={"users":[{user_id:1,id:"61bc09994da5e9ffe47fccb9",answer:"1 2 4 3 5"},{id:"61bc0af14da5e9ffe47fccbb",user_id:1,answer:"1 4 3 2"},],"quiz":[{_id:"61bc09994da5e9ffe47fccb9",course:"JavaScript",point:10,question:"What will we see in the console ?",codeBoard:"...",answers:["1 2 4 3 5","1 5 4 3 2","2 1 4 3 5","1 5 3 4 2"],correctAnswer:"2 1 4 3 5",__v:0},{_id:"61bc0af14da5e9ffe47fccbb",course:"JavaScript",point:10,question:"What will we see in the console ?",codeBoard:"...",answers:["1 4 3 2","1 2 4 3","1 2 3 4","1 4 2 3"],correctAnswer:"1 4 3 2",__v:0}]}
Query
db.users.aggregate([{$match:{user_id:1,}},{"$lookup":{"from":"quiz",let:{quizId:"$id",userAnswer:"$answer"},pipeline:[{$match:{$expr:{$and:[{$eq:["$$quizId","$_id"]},{$eq:["$$userAnswer","$correctAnswer"]}]}}}],"as":"matched"}},{$group:{_id:null,total:{$sum:1},correct:{$sum:{$size:"$matched"}}}}])