C'est une question intéressante.
Cela fonctionne comme la plupart des implémentations ECMAScript faites conserver l'ordre des clés (par exemple V8 qui est utilisé par Node). Cependant, le pilote officiel Node MongoDB n'encourage pas son utilisation, mais propose à la place deux notations différentes :
La documentation de Mongoose ne mentionne rien concernant l'ordre des clés (du moins pas à ma connaissance). Mais il offre également deux approches différentes du tri :
En effet, il semble que la fonctionnalité de tri Mongoose était basée sur une hypothèse erronée (mais actuellement valide). Il est probablement préférable d'utiliser la notation de chaîne lors du tri avec plusieurs clés. Le tri avec la notation d'objet fonctionne correctement lors de l'utilisation directe de MongoDB (par exemple dans le shell MongoDB) car il n'utilise pas de JSON pur mais JSON étendu .
Voir également cette question très connexe :Comment pouvez-vous spécifier l'ordre des propriétés dans un objet javascript pour un index MongoDB dans node.js ?
Il y a aussi un problème Mongoose à ce sujet :
Ainsi, lorsque vous utilisez Mongoose, utilisez la notation de chaîne ou la prise en charge nouvellement ajoutée pour Cartes ES2015 qui sont garantis d'être commandés par ordre d'insertion.