The query optimizer implementation for speculatively evaluating cursors produced by multiple query plans currently only supports btree and unindexed cursors. Certain geo cursors are not supported, and as a result all non btree cursors are excluded from speculative evaluation. This means that non btree cursors are only used to resolve an unhinted query when no btree cursors are helpful candidates for the query, as described in
SERVER-4531. A hint can still be used to force usage of a non btree index in such cases.
Instead it may be desirable for the query optimizer to support speculative evaluation of btree and non btree cursors simultaneously.
SERVER-3071 Index Intersection
- is related to
SERVER-4531 new process for selecting a geo index when performing exact lookup queries