diff options
author | Eliot Horowitz <eliot@10gen.com> | 2009-11-11 16:25:58 -0500 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2009-11-11 16:25:58 -0500 |
commit | dbf7bce04ba69677236ebc570f36050fd3bc4fa3 (patch) | |
tree | 3ba43216fe73f7f8310dfaf3231b03b0868785ae /jstests | |
parent | 9b340c2f62b29ba17ff683ba5f983a496e8c8037 (diff) | |
download | mongo-dbf7bce04ba69677236ebc570f36050fd3bc4fa3.tar.gz |
tests to verify SERVER-413
Diffstat (limited to 'jstests')
-rw-r--r-- | jstests/exists.js | 52 |
1 files changed, 31 insertions, 21 deletions
diff --git a/jstests/exists.js b/jstests/exists.js index 8afaf8e1ac9..28f69e8e7c4 100644 --- a/jstests/exists.js +++ b/jstests/exists.js @@ -7,28 +7,38 @@ t.save( {a:{b:1}} ); t.save( {a:{b:{c:1}}} ); t.save( {a:{b:{c:{d:null}}}} ); -assert.eq( 5, t.count() ); -assert.eq( 1, t.count( {a:null} ) ); -assert.eq( 2, t.count( {'a.b':null} ) ); -assert.eq( 3, t.count( {'a.b.c':null} ) ); -assert.eq( 5, t.count( {'a.b.c.d':null} ) ); - -assert.eq( 5, t.count() ); -assert.eq( 4, t.count( {a:{$ne:null}} ) ); -assert.eq( 3, t.count( {'a.b':{$ne:null}} ) ); -assert.eq( 2, t.count( {'a.b.c':{$ne:null}} ) ); -assert.eq( 0, t.count( {'a.b.c.d':{$ne:null}} ) ); - -assert.eq( 4, t.count( {a: {$exists:true}} ) ); -assert.eq( 3, t.count( {'a.b': {$exists:true}} ) ); -assert.eq( 2, t.count( {'a.b.c': {$exists:true}} ) ); -assert.eq( 1, t.count( {'a.b.c.d': {$exists:true}} ) ); - -assert.eq( 1, t.count( {a: {$exists:false}} ) ); -assert.eq( 2, t.count( {'a.b': {$exists:false}} ) ); -assert.eq( 3, t.count( {'a.b.c': {$exists:false}} ) ); -assert.eq( 4, t.count( {'a.b.c.d': {$exists:false}} ) ); +function dotest( n ){ + + assert.eq( 5, t.count() , n ); + assert.eq( 1, t.count( {a:null} ) , n ); + assert.eq( 2, t.count( {'a.b':null} ) , n ); + assert.eq( 3, t.count( {'a.b.c':null} ) , n ); + assert.eq( 5, t.count( {'a.b.c.d':null} ) , n ); + + assert.eq( 5, t.count() , n ); + assert.eq( 4, t.count( {a:{$ne:null}} ) , n ); + assert.eq( 3, t.count( {'a.b':{$ne:null}} ) , n ); + assert.eq( 2, t.count( {'a.b.c':{$ne:null}} ) , n ); + assert.eq( 0, t.count( {'a.b.c.d':{$ne:null}} ) , n ); + + assert.eq( 4, t.count( {a: {$exists:true}} ) , n ); + assert.eq( 3, t.count( {'a.b': {$exists:true}} ) , n ); + assert.eq( 2, t.count( {'a.b.c': {$exists:true}} ) , n ); + assert.eq( 1, t.count( {'a.b.c.d': {$exists:true}} ) , n ); + + assert.eq( 1, t.count( {a: {$exists:false}} ) , n ); + assert.eq( 2, t.count( {'a.b': {$exists:false}} ) , n ); + assert.eq( 3, t.count( {'a.b.c': {$exists:false}} ) , n ); + assert.eq( 4, t.count( {'a.b.c.d': {$exists:false}} ) , n ); +} +dotest( "before index" ) +t.ensureIndex( { "a" : 1 } ) +t.ensureIndex( { "a.b" : 1 } ) +t.ensureIndex( { "a.b.c" : 1 } ) +t.ensureIndex( { "a.b.c.d" : 1 } ) +dotest( "after index" ) + t.drop(); t.save( {r:[{s:1}]} ); |