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"},{$group:{_id:"$observer",pages:{$addToSet:"$seen.v"}}}])

Result