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}}])

Result