Database

db={"matches":[{"_id":ObjectId("5eb93f8efd259cd7fbf49d55"),"date":"01/01/2020","players":{"home":ObjectId("5eb93f8efd259cd7fbf49d59"),"away":ObjectId("5eb93f8efd259cd7fbf49d60")}}],"players":[{"_id":ObjectId("5eb93f8efd259cd7fbf49d59"),"name":"Roger Federer","country":"Suiza"}]}

Query

db.matches.aggregate([{$lookup:{from:"players",localField:"players.home",foreignField:"_id",as:"home"}},{$lookup:{from:"players",localField:"players.away",foreignField:"_id",as:"away"}},{$project:{date:1,"players.away":{$cond:[{$eq:["$away",[]]},"$players.away",{$arrayElemAt:["$away",0]}]},"players.home":{$cond:[{$eq:["$home",[]]},"$players.home",{$arrayElemAt:["$home",0]}]}}}])

Result