Database
[{"user_id":"1","key":"key1"},{"user_id":"1","key":"key2"},{"user_id":"2","key":"key1"},{"user_id":"2","key":"key1"},{"user_id":"3","key":"key2"},{"user_id":"4","key":"key1"}]
Query
db.collection.aggregate([{$group:{_id:"$key",count:{$addToSet:"$user_id"}}},{$addFields:{count:{$size:"$count"}}},{$sort:{count:-1}}])