Database

[{"observer":"machine1","seen":[{"page1":["/link1","/link3"]},{"page2":["/link4","/link1"]}],},{"observer":"machine2","seen":[{"page3":["/link2"]},{"page1":["/link5"]}],}]

Query

db.collection.aggregate([{"$unwind":"$seen"},{"$addFields":{"seen":{"$objectToArray":"$seen"}}},{"$unwind":"$seen"},{"$unwind":"$seen.v"},{"$facet":{"pages":[{"$group":{"_id":"$observer","pages":{"$addToSet":"$seen.v"}}}],"links":[{"$group":{"_id":"$observer","links":{"$addToSet":"$seen.k"}}}]}},{$project:{"pages":{"$map":{"input":"$pages","in":{"$let":{"vars":{"links":{"$arrayElemAt":["$links",{"$indexOfArray":["$links._id","$$this._id"]}]}},"in":{"_id":"$$this._id","pages":"$$this.pages","links":"$$links.links"}}}}}}},{"$unwind":"$pages"},{"$replaceRoot":{"newRoot":"$pages"}}])

Result