diff options
author | Aaron <aaron@10gen.com> | 2012-02-20 14:42:47 -0800 |
---|---|---|
committer | Aaron <aaron@10gen.com> | 2012-02-24 22:49:15 -0800 |
commit | 5021e318a604f7b6b4ad07a3ed24680abfc21f07 (patch) | |
tree | 641406e6803a3a284c5b7a29a21ccc6ae5889876 /jstests/sorti.js | |
parent | 331fe579b13ccb2205e3e54d40f4dc6c66e782bf (diff) | |
download | mongo-5021e318a604f7b6b4ad07a3ed24680abfc21f07.tar.gz |
add test that a projection is applied after an in memory sort
Diffstat (limited to 'jstests/sorti.js')
-rw-r--r-- | jstests/sorti.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/jstests/sorti.js b/jstests/sorti.js new file mode 100644 index 00000000000..2e5cfe110d7 --- /dev/null +++ b/jstests/sorti.js @@ -0,0 +1,25 @@ +// Check that a projection is applied after an in memory sort. + +t = db.jstests_sorti; +t.drop(); + +t.save( { a:1, b:0 } ); +t.save( { a:3, b:1 } ); +t.save( { a:2, b:2 } ); +t.save( { a:4, b:3 } ); + +function checkBOrder( query ) { + arr = query.toArray(); + order = []; + for( i in arr ) { + a = arr[ i ]; + order.push( a.b ); + } + assert.eq( [ 0, 2, 1, 3 ], order ); +} + +checkBOrder( t.find().sort( { a:1 } ) ); +checkBOrder( t.find( {}, { _id:0, b:1 } ).sort( { a:1 } ) ); +t.ensureIndex( { b:1 } ); +checkBOrder( t.find( {}, { _id:0, b:1 } ).sort( { a:1 } ) ); +checkBOrder( t.find( {}, { _id:0, b:1 } ).sort( { a:1 } ).hint( { b:1 } ) ); |