De los documentos de mongodb
Pero en javascript no puedes depender del orden de las teclas en un objeto 😱. Entonces, ¿cómo conserva mongo de manera confiable el orden de los item y stock en el ejemplo anterior de un índice compuesto?
No tengo idea de lo que la gente de MongoDB estaba fumando cuando definieron esta API. Como ha señalado correctamente, el objeto JavaScript solo representa la colección desordenada de pares clave-valor tanto por diseño como por espíritu. Para una colección ordenada, se podría usar una matriz de objetos.
Las versiones recientes de las especificaciones de JavaScript fomentan la preservación del orden de creación de claves en el objeto para Object.keys y métodos similares. Como otros señalaron en los comentarios, confiar en el orden de creación de propiedades para el parámetro Objeto para una API es simplemente estúpido. Se vuelve aún más confuso si el objeto se clona, la biblioteca de clonación mantiene el orden o no. Pero probablemente funciona desde las implementaciones recientes ahora en día respeta el orden de creación y pasan el objeto constante en línea.