--Use of 'orderby' is not allowed for find command. --Passing a negative value for .batchSize() is no longer legal. --Find command accepts 64-bit skip and limit values. --Slow log line format has changed for find command.
37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
// SERVER-2845 When skipping objects without loading them, they shouldn't be
|
|
// included in the nscannedObjects count.
|
|
|
|
var t = db.jstests_skip1;
|
|
|
|
if ( 0 ) { // SERVER-2845
|
|
t.drop();
|
|
|
|
t.ensureIndex( {a:1} );
|
|
t.save( {a:5} );
|
|
t.save( {a:5} );
|
|
t.save( {a:5} );
|
|
|
|
assert.eq( 3, t.find( {a:5} ).skip( 2 ).explain().nscanned );
|
|
assert.eq( 1, t.find( {a:5} ).skip( 2 ).explain().nscannedObjects );
|
|
}
|
|
|
|
// SERVER-13537: Ensure that combinations of skip and limit don't crash
|
|
// the server due to overflow.
|
|
t.drop();
|
|
for (var i = 0; i < 10; i++) {
|
|
t.save({a: i});
|
|
}
|
|
assert.eq( 9, t.find().sort({a: 1}).limit(2147483647).skip(1).itcount() );
|
|
assert.eq( 0, t.find().sort({a: 1}).skip(2147483647).limit(1).itcount() );
|
|
|
|
if (!db.getMongo().useReadCommands()) {
|
|
// If we're using OP_QUERY/OP_GET_MORE reads rather than find/getMore command, then the skip and
|
|
// limit fields must fit inside a 32-bit signed integer.
|
|
assert.throws( function() {
|
|
assert.eq( 0, t.find().sort({a: 1}).skip(2147483648).itcount() );
|
|
});
|
|
assert.throws( function() {
|
|
assert.eq( 0, t.find().sort({a: 1}).limit(2147483648).itcount() );
|
|
});
|
|
}
|