Database

[{"user":"12","process":"a"},{"user":"12","process":"b"},{"user":"12","process":"p"}]

Query

db.collection.aggregate([{"$group":{"_id":"$user","processes":{"$addToSet":"$process"},"user":{$first:"$user"}}},{$project:{matchCount:{$size:{"$setIntersection":[["a","b"],"$processes"]}},"totalCount":{$size:"$processes"},"user":1}},{$project:{"user":1,"percentage":{"$divide":["$matchCount","$totalCount"]}}}])

Result