これは興味深い質問です。
ほとんどのECMAScript実装が実際に実行するように機能します キーの順序を保持します(例:ノードで使用されるV8)。ただし、公式のNodeMongoDBドライバー 使用を推奨するのではなく、2つの異なる表記法を提供します。
マングースのドキュメントには、キーの順序については何も記載されていません(少なくとも私が知っていることではありません)。ただし、並べ替えの2つの異なるアプローチ も提供します。 :
確かに、マングースの並べ替え機能は間違った(しかし現在は有効な)仮定に基づいていたようです。複数のキーで並べ替える場合は文字列表記を使用するのがおそらく最善です。オブジェクト表記での並べ替えは、MongoDBを直接使用する場合(MongoDBシェルなど)に正しく機能します。これは、純粋なJSONではなく拡張JSON 。
この非常に関連する質問も参照してください: node.jsのMongoDBインデックスのjavascriptオブジェクトのプロパティの順序を指定するにはどうすればよいですか?
マングースの問題 もあります これについて:
したがって、Mongooseを使用する場合は、文字列表記を使用するか、新しく追加されたES2015マップ 挿入順で注文されることが保証されています。