- 
    Type:Improvement 
- 
    Resolution: Duplicate
- 
    Priority:Major - P3 
- 
    None
- 
    Affects Version/s: 4.0.9, 4.0.10
- 
    Component/s: Index Maintenance
- 
    None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
There is field contracts, that contain array of objects, that objects have indexed string field dateSigned (example value "2016-09-23T18:02:00+02:02"). Query with count and $lt (same for $gt) use index and all works great, stage COUNT_SCAN. But query with both $gt and $lt use index only for one bound and FETCH for another, that cause very poor perfomence.
Why index can't use both bounds?
Also I try to convert string value of dateSigned to ISODate, add new field dateSignedDate. Create index on that field - works same way.
- duplicates
- 
                    SERVER-23118 Update index bounds generation rules for index intersection in the PlanEnumerator given path-level multikey info -         
- Backlog
 
-         
- is duplicated by
- 
                    SERVER-41590 Covered query делает FETCH -         
- Closed
 
-         
- is related to
- 
                    SERVER-6720 Range query with compound multikey index scans more objects than needed -         
- Closed
 
-         
- 
                    SERVER-35223 $elemMatch forces mongo to fetch documents instead of using COUNT_SCAN -         
- Closed
 
-         
- 
                    SERVER-23118 Update index bounds generation rules for index intersection in the PlanEnumerator given path-level multikey info -         
- Backlog
 
-