Database
db={"users":[{_id:"user1","username":"john"},{_id:"user2",username:"bob"},],"articles":[{_id:"article1",view_history:[{user:"user1",viewed_at:new Date()},{user:"user2",viewed_at:new Date()},{user:"user1",viewed_at:new Date()},]}]}
Query
db.articles.aggregate([{$unwind:"$view_history"},{$lookup:{from:"users",localField:"view_history.user",foreignField:"_id",as:"view_history.user"}},{$addFields:{"view_history.user":{$arrayElemAt:["$view_history.user.username",0]}}},{$group:{_id:"$_id",view_history:{$push:"$view_history"}}}])