Database
[{"TeacherID":212,"StudentID":1},{"TeacherID":212,"StudentID":2},{"TeacherID":123,"StudentID":3},{"TeacherID":223,"StudentID":4},{"TeacherID":212,"StudentID":2},{"TeacherID":223,"StudentID":3},{"TeacherID":212,"StudentID":2},{"TeacherID":212,"StudentID":3},{"TeacherID":123,"StudentID":2},{"TeacherID":123,"StudentID":4}]
Query
db.collection.aggregate([{$group:{_id:{TeacherID:"$TeacherID",StudentID:"$StudentID"},occurrence:{$sum:1}}},{$sort:{"occurrence":-1}}])