Files
mongo/jstests/core/query/explain/explain_skip.js

29 lines
965 B
JavaScript

/**
* Tests that explain reports the skip stage statistics correctly.
*
* @tags: [
* assumes_unsharded_collection,
* assumes_against_mongod_not_mongos,
* ]
*/
import {getPlanStage, getWinningPlanFromExplain} from "jstests/libs/query/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 = getWinningPlanFromExplain(explain);
const skipStage = getPlanStage(winningPlan, "SKIP");
assert.neq(null, skipStage, explain);
assert.eq(5, skipStage.skipAmount, explain);