Database

db={"followings":[{"userId":8,"followers":[{"followerId":4},{"followerId":5}],"followings":[{"followingId":1},{"followingId":5}]}],"users":[{"_id":4,"fullName":"Rose Marriott"},{"_id":5,"fullName":"James Naismith"},{"_id":1,"fullName":"Russell Oakham"}]}

Query

db.followings.aggregate([{$addFields:{userIds:{$setUnion:[{$map:{input:"$followers",in:"$$this.followerId"}},{$map:{input:"$followings",in:"$$this.followingId"}}]}}},{$lookup:{from:"users",localField:"userIds",foreignField:"_id",as:"users"}},{$project:{userId:1,followers:{$map:{input:"$followers",as:"f",in:{$mergeObjects:["$$f",{fullName:{$reduce:{input:"$users",initialValue:"",in:{$cond:[{$eq:["$$this._id","$$f.followerId"]},"$$this.fullName","$$value"]}}}}]}}},followings:{$map:{input:"$followings",as:"f",in:{$mergeObjects:["$$f",{fullName:{$reduce:{input:"$users",initialValue:"",in:{$cond:[{$eq:["$$this._id","$$f.followingId"]},"$$this.fullName","$$value"]}}}}]}}}}}])

Result