Files
mongo/jstests/core/query/explain/explain_skip.js
Adityavardhan Agrawal 6a18375305 SERVER-90170 Avoid using jsTestName in explain_skip.js (#21905)
GitOrigin-RevId: 89968d6577a46489d2ecf42f9f907c42ed5042c9
2024-05-06 22:13:07 +00:00

29 lines
950 B
JavaScript

/**
* Tests that explain reports the skip stage statistics correctly.
*
* @tags: [
* assumes_unsharded_collection,
* assumes_against_mongod_not_mongos,
* ]
*/
import {getPlanStage, getWinningPlan} from "jstests/libs/analyze_plan.js";
const coll = db.explain_skip;
coll.drop();
assert.commandWorked(coll.insert({a: 1, b: 1}));
assert.commandWorked(coll.insert({a: 1, b: 2}));
assert.commandWorked(coll.insert({a: 1, b: 3}));
assert.commandWorked(coll.insert({a: 2, b: 1}));
assert.commandWorked(coll.insert({a: 2, b: 2}));
assert.commandWorked(coll.insert({a: 2, b: 3}));
assert.commandWorked(coll.createIndex({a: 1}));
assert.commandWorked(coll.createIndex({b: 1}));
const explain = coll.find({a: 1, b: 1}).sort({_id: 1}).skip(5).explain();
const winningPlan = getWinningPlan(explain.queryPlanner);
const skipStage = getPlanStage(winningPlan, "SKIP");
assert.neq(null, skipStage, explain);
assert.eq(5, skipStage.skipAmount, explain);