29 lines
965 B
JavaScript
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);
|