Database

[{name:"Foo",values:["FOO","BAR","FOO"]},{name:"Bar",values:["BAZ","BAR","BAR"]},{name:"Baz",values:["BAZ","BAZ","BAZ"]}]

Query

db.collection.aggregate([{$unwind:"$values"},{$group:{_id:{name:"$name",val:"$values"},count:{$sum:1}}},{$group:{_id:"$_id.name",values:{$push:{val:"$_id.val",count:"$count"}}}}])

Result