ExplainindexOnly
は、探しているすべての値がインデックス(ソートを含む)にある場合にのみ返されます。基本的に、カバーされたインデックスを示します:http: //docs.mongodb.org/manual/applications/indexes/#create-indexes-that-support-covered-queries
この場合、2つのフィールドでクエリを実行していますが、1つの個別のインデックスに含まれるのはそのうちの1つだけです。
MongoDBが単一の句に複数のインデックスを使用できないことを考慮すると($or
ここでは複数の句であるため例外であり、通常のクエリとは異なります)、indexOnly
クエリを実行せず、代わりにインデックスでコレクションを検索してa
から実行しますb
その範囲内に含まれるドキュメントの完全なドキュメントスキャンにより、その値を理解して結果を返します。
indexOnly
カーソルを適切に使用するには、クエリの次の部分を1つのインデックスに収める必要があることにも注意してください。
すなわち:
db.ensureIndex({a:1,b:1});
db.col.find({a:1}, {_id:0,a:1,b:1}).sort({b:1});
indexOnly
カーソルを使用します。