| Steps To Reproduce: |
Script to reproduce:
var createDoc = function(i) {
|
return {
|
name : 'object' + i,
|
value : i,
|
};
|
}
|
|
var createDocs = function(i) {
|
return [
|
createDoc(i),
|
createDoc(i + 1),
|
createDoc(i + 2),
|
createDoc(i + 3),
|
];
|
}
|
|
for (var i = 0; i < 10000; ++i) {
|
db.test.insert({
|
collection : createDocs(i)
|
})
|
}
|
|
db.test.createIndex({ 'collection.value' : 1 })
|
db.test.find({ collection : { $elemMatch : { value : { $gte : 9000, $lte : 9010 } } } }).explain()
|
I see the following output:
{
|
"queryPlanner" : {
|
"plannerVersion" : NumberInt(1),
|
"namespace" : "smartcat_isaev_dev.test",
|
"indexFilterSet" : false,
|
"parsedQuery" : {
|
"collection" : {
|
"$elemMatch" : {
|
"$and" : [
|
{
|
"value" : {
|
"$lte" : NumberInt(9010)
|
}
|
},
|
{
|
"value" : {
|
"$gte" : NumberInt(9000)
|
}
|
}
|
]
|
}
|
}
|
},
|
"winningPlan" : {
|
"stage" : "FETCH",
|
"filter" : {
|
"collection" : {
|
"$elemMatch" : {
|
"$and" : [
|
{
|
"value" : {
|
"$lte" : NumberInt(9010)
|
}
|
},
|
{
|
"value" : {
|
"$gte" : NumberInt(9000)
|
}
|
}
|
]
|
}
|
}
|
},
|
"inputStage" : {
|
"stage" : "IXSCAN",
|
"keyPattern" : {
|
"collection.value" : NumberInt(1)
|
},
|
"indexName" : "collection.value_1",
|
"isMultiKey" : true,
|
"direction" : "forward",
|
"indexBounds" : {
|
"collection.value" : [
|
"[-inf.0, 9010.0]"
|
]
|
}
|
}
|
},
|
"rejectedPlans" : [
|
|
]
|
},
|
"serverInfo" : {
|
"host" : "mongodb-dev",
|
"port" : NumberInt(27017),
|
"version" : "3.0.3",
|
"gitVersion" : "b40106b36eecd1b4407eb1ad1af6bc60593c6105"
|
},
|
"ok" : NumberInt(1)
|
}
|
|