Database
[{"users":[{_id:1,name:"John",age:31},{_id:2,name:"Jane",age:26}],"teams":[{id:1,name:"Team 1",color:"yellow"},{id:2,name:"Team 2",color:"red"},{id:5,name:"Team 2",color:"red"}],"moreTeams":[{id:1,name:"Team 1 - More",},{id:2,name:"Team 2 - More",},{id:3,name:"Team 3 - More",extra:"extra"}]}]
Query
db.collection.aggregate([{$addFields:{moreTeams:{$map:{input:"$moreTeams",as:"m",in:{$mergeObjects:[{$arrayElemAt:[{$filter:{input:"$teams",cond:{$eq:["$$m.id","$$this.id"]}}},0]},"$$m"]}}}}},{$project:{users:1,moreTeams:{$concatArrays:["$moreTeams",{$filter:{input:"$teams",cond:{$not:{$in:["$$this.id","$moreTeams.id"]}}}}]}}}])