diff options
Diffstat (limited to 'jstests/explain6.js')
-rw-r--r-- | jstests/explain6.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/jstests/explain6.js b/jstests/explain6.js new file mode 100644 index 00000000000..cf9668c9dbb --- /dev/null +++ b/jstests/explain6.js @@ -0,0 +1,23 @@ +// Test explain result count when a skip parameter is used. + +t = db.jstests_explain6; +t.drop(); + +t.save( {} ); +explain = t.find().skip( 1 ).explain( true ); +assert.eq( 0, explain.n ); +// With only one plan, the skip information is known for the plan. This is an arbitrary +// implementation detail, but it changes the way n is calculated. +assert.eq( 0, explain.allPlans[ 0 ].n ); + +t.ensureIndex( {a:1} ); +explain = t.find( {a:null,b:null} ).skip( 1 ).explain( true ); +assert.eq( 0, explain.n ); +// With multiple plans, the skip information is not known to the plan. +assert.eq( 1, explain.allPlans[ 0 ].n ); + +t.dropIndexes(); +explain = t.find().skip( 1 ).sort({a:1}).explain( true ); +// Skip is applied for an in memory sort. +assert.eq( 0, explain.n ); +assert.eq( 1, explain.allPlans[ 0 ].n ); |