И покажите план если не делать count()
спросил план, вот без каунта
db.col.explain('executionStats').find({"data.contracts.dateSigned":{$gt:"2019-05-01T16:00:00+03:00",$lt:"2019-06-02T00:00:00+03:00"}},{_id:0,'data.contracts.dateSigned':1})
{
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "test.col",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [
{
"data.contracts.dateSigned" : {
"$lt" : "2019-06-02T00:00:00+03:00"
}
},
{
"data.contracts.dateSigned" : {
"$gt" : "2019-05-01T16:00:00+03:00"
}
}
]
},
"winningPlan" : {
"stage" : "PROJECTION",
"transformBy" : {
"_id" : 0,
"data.contracts.dateSigned" : 1
},
"inputStage" : {
"stage" : "FETCH",
"filter" : {
"data.contracts.dateSigned" : {
"$lt" : "2019-06-02T00:00:00+03:00"
}
},
"inputStage" : {
"stage" : "IXSCAN",
"keyPattern" : {
"data.contracts.dateSigned" : 1
},
"indexName" : "data.contracts.dateSigned_1",
"isMultiKey" : true,
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"data.contracts.dateSigned" : [
"(\"2019-05-01T16:00:00+03:00\", {})"
]
}
}
}
},
"rejectedPlans" : [
{
"stage" : "PROJECTION",
"transformBy" : {
"_id" : 0,
"data.contracts.dateSigned" : 1
},
"inputStage" : {
"stage" : "FETCH",
"filter" : {
"data.contracts.dateSigned" : {
"$gt" : "2019-05-01T16:00:00+03:00"
}
},
"inputStage" : {
"stage" : "IXSCAN",
"keyPattern" : {
"data.contracts.dateSigned" : 1
},
"indexName" : "data.contracts.dateSigned_1",
"isMultiKey" : true,
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"data.contracts.dateSigned" : [
"[\"\", \"2019-06-02T00:00:00+03:00\")"
]
}
}
}
}
]
},
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 93383,
"executionTimeMillis" : 18028,
"totalKeysExamined" : 115900,
"totalDocsExamined" : 114790,
"executionStages" : {
"stage" : "PROJECTION",
"nReturned" : 93383,
"executionTimeMillisEstimate" : 17172,
"works" : 117452,
"advanced" : 93383,
"needTime" : 22517,
"needYield" : 1551,
"saveState" : 2356,
"restoreState" : 2356,
"isEOF" : 1,
"invalidates" : 0,
"transformBy" : {
"_id" : 0,
"data.contracts.dateSigned" : 1
},
"inputStage" : {
"stage" : "FETCH",
"filter" : {
"data.contracts.dateSigned" : {
"$lt" : "2019-06-02T00:00:00+03:00"
}
},
"nReturned" : 93383,
"executionTimeMillisEstimate" : 12704,
"works" : 117452,
"advanced" : 93383,
"needTime" : 22517,
"needYield" : 1551,
"saveState" : 2356,
"restoreState" : 2356,
"isEOF" : 1,
"invalidates" : 0,
"docsExamined" : 114790,
"alreadyHasObj" : 0,
"inputStage" : {
"stage" : "IXSCAN",
"nReturned" : 114790,
"executionTimeMillisEstimate" : 280,
"works" : 115901,
"advanced" : 114790,
"needTime" : 1110,
"needYield" : 0,
"saveState" : 2356,
"restoreState" : 2356,
"isEOF" : 1,
"invalidates" : 0,
"keyPattern" : {
"data.contracts.dateSigned" : 1
},