Това е интересен въпрос.
Работи както повечето реализации на ECMAScript всъщност работят запазване на реда на ключовете (напр. V8, който се използва от Node). Официалният драйвер на Node MongoDB обаче не насърчава използването му, вместо това предлага две различни обозначения:
В документацията на Mongoose не се споменава нищо относно реда на ключовете (поне не доколкото аз знам). Но също така предлага два различни подхода за сортиране :
Всъщност изглежда, че функционалността за сортиране на Mongoose се основава на грешно (но в момента валидно) предположение. Вероятно е най-добре да използвате нотацията на низа, когато сортирате с множество ключове. Сортирането с нотацията на обекта работи правилно, когато използвате директно MongoDB (напр. в обвивката на MongoDB), тъй като не използва чист JSON, а разширен JSON .
Вижте също този много свързан въпрос:Как можете да посочите реда на свойствата в javascript обект за MongoDB индекс в node.js?
Има и проблем с Mongoose за това:
Така че, когато използвате Mongoose, използвайте или низовата нотация, или новодобавената поддръжка за ES2015 Карти които гарантирано ще бъдат подредени чрез поръчка за вмъкване.