How to create a MongoDB index with isodate?
The order of the fields in the index definition is important.
The indexed values are sorted in the order the fields appear in the spec, so in the index: { _id: 1, Field2: 1,Field4: 1, &quot;Field1.date&quot;:1}, the values will be sorted first by _id, then by Field2, etc.
This means that in order to find documents with dates in the range you specified, it would have to examine every index entry.
It that case is probably just as efficient to scan all of the documents.
Instead build an index on { &quot;Field1.date&quot;:1, _id: 1, Field2: 1,Field4: 1}.  That will allow the query executor to find all of the documents by scanning a single subset of the index, and it will have all of the projected fields available to avoid fetching any documents.