diff options
Diffstat (limited to 'jstests/sort9.js')
-rw-r--r-- | jstests/sort9.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/jstests/sort9.js b/jstests/sort9.js new file mode 100644 index 00000000000..62407d6e96d --- /dev/null +++ b/jstests/sort9.js @@ -0,0 +1,26 @@ +// Unindexed array sorting SERVER-2884 + +t = db.jstests_sort9; +t.drop(); + +t.save( {a:[]} ); +t.save( {a:[[]]} ); +assert.eq( 2, t.find( {a:{$ne:4}} ).sort( {a:1} ).itcount() ); +assert.eq( 2, t.find( {'a.b':{$ne:4}} ).sort( {'a.b':1} ).itcount() ); +assert.eq( 2, t.find( {a:{$ne:4}} ).sort( {'a.b':1} ).itcount() ); + +t.drop(); +t.save( {} ); +assert.eq( 1, t.find( {a:{$ne:4}} ).sort( {a:1} ).itcount() ); +assert.eq( 1, t.find( {'a.b':{$ne:4}} ).sort( {'a.b':1} ).itcount() ); +assert.eq( 1, t.find( {a:{$ne:4}} ).sort( {'a.b':1} ).itcount() ); +assert.eq( 1, t.find( {a:{$exists:0}} ).sort( {a:1} ).itcount() ); +assert.eq( 1, t.find( {a:{$exists:0}} ).sort( {'a.b':1} ).itcount() ); + +t.drop(); +t.save( {a:{}} ); +assert.eq( 1, t.find( {a:{$ne:4}} ).sort( {a:1} ).itcount() ); +assert.eq( 1, t.find( {'a.b':{$ne:4}} ).sort( {'a.b':1} ).itcount() ); +assert.eq( 1, t.find( {a:{$ne:4}} ).sort( {'a.b':1} ).itcount() ); +assert.eq( 1, t.find( {'a.b':{$exists:0}} ).sort( {a:1} ).itcount() ); +assert.eq( 1, t.find( {'a.b':{$exists:0}} ).sort( {'a.b':1} ).itcount() ); |