summaryrefslogtreecommitdiff
path: root/jstests/core/mod1.js
blob: 834084e930137490dd338abaf6d5077120a4d1ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

t = db.mod1;
t.drop();

t.save( { a : 1 } );
t.save( { a : 2 } );
t.save( { a : 11 } );
t.save( { a : 20 } );
t.save( { a : "asd" } );
t.save( { a : "adasdas" } );

assert.eq( 2 , t.find( "this.a % 10 == 1" ).itcount() , "A1" );
assert.eq( 2 , t.find( { a : { $mod : [ 10 , 1 ] } } ).itcount() , "A2" );
assert.eq( 0 , t.find( { a : { $mod : [ 10 , 1 ] } } ).explain("executionStats")
                                                      .executionStats.totalKeysExamined , "A3" );

t.ensureIndex( { a : 1 } );

assert.eq( 2 , t.find( "this.a % 10 == 1" ).itcount() , "B1" );
assert.eq( 2 , t.find( { a : { $mod : [ 10 , 1 ] } } ).itcount() , "B2" );

assert.eq( 1 , t.find( "this.a % 10 == 0" ).itcount() , "B3" );
assert.eq( 1 , t.find( { a : { $mod : [ 10 , 0 ] } } ).itcount() , "B4" );
assert.eq( 4 , t.find( { a : { $mod : [ 10 , 1 ] } } ).explain("executionStats")
                                                      .executionStats.totalKeysExamined, "B5" );

assert.eq( 1, t.find( { a: { $gt: 5, $mod : [ 10, 1 ] } } ).itcount() );