Database

db={players:[{id:1,player_name:"Tom",total_points:0,driver_selection:[1,4,44]},{id:2,player_name:"Test",total_points:0,driver_selection:[2,5,55]}],drivers:[{id:1,driver_name:"Max Verstappen",driver_points:200},{id:4,driver_name:"Lando Norris",driver_points:150},{id:44,driver_name:"Lewis Hamilton",driver_points:100},{id:2,driver_name:"Max Verstappen",driver_points:500},{id:5,driver_name:"Lando Norris",driver_points:350},{id:55,driver_name:"Lewis Hamilton",driver_points:150}]}

Query

db.players.aggregate([{$lookup:{"from":"drivers","localField":"driver_selection","foreignField":"id","as":"total_points",pipeline:[{$project:{driver_points:1,_id:0}}]}},{$set:{"total_points":{$sum:"$total_points.driver_points"}}},{$merge:{into:"players"}}])

Result