Database

[{id:1,email:"test@gmail.com"},{id:2,email:"test2@gmail.com"},{id:3,email:"test3@example.com"}]

Query

db.collection.aggregate([{"$set":{"domain":{"$arrayElemAt":[{"$split":["$email","@"]},1]}}},{"$group":{"_id":"$domain","count":{"$sum":1}}}])

Result