Database
[{"_id":1.0,"school":"Linguist","language":"english","seats":10.0,"price":200.0,"teacher":{"firstName":"John","lastName":"Wood"}},{"_id":3.0,"school":"Linguist","language":"english","seats":15.0,"price":180.0,"teacher":{"firstName":"John","lastName":"Wood"}},{"_id":2.0,"school":"Linguist","language":"french","seats":10.0,"price":250.0,"teacher":{"firstName":"Marie","lastName":"Dubois"}},{"_id":4.0,"school":"Prestige","language":"english","seats":8.0,"price":250.0,"teacher":{"firstName":"Mark","lastName":"Cartridge"}},{"_id":5.0,"school":"Prestige","language":"french","seats":10.0,"price":300.0,"teacher":{"firstName":"Monique","lastName":"Roux"}},{"_id":6.0,"school":"Prestige","language":"french","seats":5.0,"price":400.0},{"_id":7.0,"school":"Prestige","language":"german","seats":10.0,"price":310.0,"teacher":{"firstName":"Wolfgang","lastName":"Koch"}}]
Query
db.collection.aggregate([{$sort:{"teacher.firstName":-1}},{$skip:0/** check diff by changing value 0*/},{$limit:3}])