Welcome to the community @Amon_Tse!
Based on your output, I assume you are using Robo3T (although similar behaviour can be reproduced in the mongo shell).
The issue you are seeing is because you are using key values that look like numbers, and JavaScript is quirky when it comes to the order of keys in an object. Keys that look like numbers will end up sorted first, so the server ends up being sent a different sort order than you intended.
For example:
> var sort = {'65534':1,'65533':1}
> sort
{ "65533" : 1, "65534" : 1 }
In JavaScript you would either want to use alphanumeric key names (which don’t get sorted) or an order-preserving data structure like Map (which is how the Node.js driver implemented ordered options: NODE-578). All official drivers or languages include support for creating ordered objects where order is significant.
The mongo shell embeds a JavaScript interpreter, but unfortunately does not currently have a workaround for this edge case outside of avoiding numeric-like field names. Some relevant issues to upvote & watch are SERVER-11358 and SERVER-28569.
If you are using a MongoDB admin UI which doesn’t have a solution for this, I would report the behaviour as a bug.
I noticed that this bug also exists in Compass, so created COMPASS-4258.
Regards,
Stennie