Database
[{name:"John",lastName:"Smith",occupation:"software engineer"},{name:"Steve",lastName:"Smith",occupation:"senior software engineer"},{name:"John",lastName:"Doe",occupation:"qa"},{name:"Steve",lastName:"Doe",occupation:"manager"},{name:"John",lastName:"Red",occupation:"software engineer"},]
Query
db.collection.aggregate([{$match:{name:"John"}},{$group:{_id:"$name",occupations:{$addToSet:"$occupation"},lastNames:{$addToSet:"$lastName"},}},{$project:{_id:0,name:"$_id",occupations:1,lastNames:2}}])