diff --git a/src/mongo/db/query/planner_analysis.cpp b/src/mongo/db/query/planner_analysis.cpp index d0c08e10c3adc..a557f9a59f2eb 100644 --- a/src/mongo/db/query/planner_analysis.cpp +++ b/src/mongo/db/query/planner_analysis.cpp @@ -1036,6 +1036,11 @@ bool QueryPlannerAnalysis::explodeForSort(const CanonicalQuery& query, if (!isOilExplodable(oil, iet)) { break; } + // We need not explode the fields in the desired sort order + auto elem = *kpIt; + if (elem.fieldNameStringData() == desiredSort.begin()->fieldNameStringData()) { + break; + } numScans *= oil.intervals.size(); kpIt.next(); ++boundsIdx;