Database
db={"employees":[{name:"Johnny Doe",empno:1},{name:"George Lucas",empno:2},],"assignment":[{"assid":1,"label":"assignment 1",empno:1},{"assid":2,"label":"assignment 2",empno:1},{"assid":3,"label":"assignment 3",empno:2},],"finalreport":[{"assid":1,points:15},{"assid":2,points:1},{"assid":3,points:7},]}
Query
db.employees.aggregate([{"$lookup":{"from":"assignment","localField":"empno","foreignField":"empno","as":"assignments"}},{"$lookup":{"from":"finalreport","localField":"assignments.assid","foreignField":"assid","as":"reports"}},{$project:{points:{$sum:{$map:{input:"$reports",in:"$$this.points"}}},empno:1,}}])