The problem is that you need to sort on date instead of $date.
myCollection.find().sort({date: 1}).limit(50, callback);
Mongo applies the sort before limiting the results regardless of the order you call sort and limit on the cursor.
Proof in docs: link
db.bios.find().sort( { name: 1 } ).limit( 5 ) db.bios.find().limit( 5 ).sort( { name: 1 } )The two statements are equivalent; i.e. the order in which you chain
the limit() and the sort() methods is not significant. Both statements
return the first five documents, as determined by the ascending sort
order on ‘name’.