2

mongo インデックスのドキュメントには、複合インデックスの場合、フィールドの順序が非常に重要であると記載されています。インデックスは、フィールドの任意のプレフィックスを使用したクエリのみをサポートできます: http://docs.mongodb.org/manual/core/indexes/

Meteor は現在、サーバー側ensureIndexと同様にMongoDB へのパススルーを備えています。Collection._ensureIndex

ただし、Javascript で引数を渡すとCollection._ensureIndex、これらのフィールドは Javascript オブジェクトに変換されます。Mongo がそれらを同じ順序で読み取るという保証はありますか? そうでない場合、このインデックスを設定する正しい方法は何ですか?

これは、JS オブジェクトの保存方法に関係している可能性があります。それらは連想配列ですか、それともプロパティを順番に保持していますか?

4

2 に答える 2

2

Javascript はオブジェクトのパラメーターの順序を指定しませんが、V8 では、少なくとも node.js の場合、パラメーターは常にオブジェクトに追加された順序になります。

あなたがそうするなら

var a = {a:1, b:1, c:1}
var keys = Object.keys(a)

戻り値

[ 'a', 'b', 'c' ]
于 2013-08-12T13:03:33.347 に答える