(function() { "use strict"; load("jstests/libs/optimizer_utils.js"); // For checkCascadesOptimizerEnabled. if (!checkCascadesOptimizerEnabled(db)) { jsTestLog("Skipping test because the optimizer is not enabled"); return; } const t = db.cqf_exchange; t.drop(); assert.commandWorked(t.insert({a: {b: 1}})); assert.commandWorked(t.insert({a: {b: 2}})); assert.commandWorked(t.insert({a: {b: 3}})); assert.commandWorked(t.insert({a: {b: 4}})); assert.commandWorked(t.insert({a: {b: 5}})); const res = t.explain("executionStats").aggregate([{$match: {'a.b': 2}}]); assert.eq(1, res.executionStats.nReturned); assert.eq("Exchange", res.queryPlanner.winningPlan.optimizerPlan.child.nodeType); }());