Database
db={users:[{_id:1,name:"Some User 1"},{_id:2,name:"Some User 2"}],teams:[{_id:1,users:[{user:1,type:"ADMIN"},{user:2,type:"MEMBER"},]}],vendors:[{_id:1,team:1/** (ref)*/}],groups:[{_id:1,vendor:1/** (ref)*/}],}
Query
db.groups.aggregate([{$lookup:{from:"vendors",localField:"vendor",foreignField:"_id",as:"vendor"}},{$unwind:"$vendor",},{$lookup:{from:"teams",localField:"vendor.team",foreignField:"_id",as:"vendor.team"}},{$unwind:"$vendor.team",},{$lookup:{from:"users",localField:"vendor.team.users.user",foreignField:"_id",as:"userlist"}},{"$set":{"vendor.team.users":{$map:{input:"$vendor.team.users",as:"user",in:{$mergeObjects:["$$user",{user:{$first:{$filter:{input:"$userlist",cond:{$eq:["$$user.user","$$this._id"]}}}}}]}}}}},{"$unset":"userlist"}])