diff options
Diffstat (limited to 'jstests/mr_sort.js')
-rw-r--r-- | jstests/mr_sort.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/jstests/mr_sort.js b/jstests/mr_sort.js new file mode 100644 index 0000000..7692062 --- /dev/null +++ b/jstests/mr_sort.js @@ -0,0 +1,44 @@ + +t = db.mr_sort; +t.drop() + +t.ensureIndex( { x : 1 } ) + +t.insert( { x : 1 } ) +t.insert( { x : 10 } ) +t.insert( { x : 2 } ) +t.insert( { x : 9 } ) +t.insert( { x : 3 } ) +t.insert( { x : 8 } ) +t.insert( { x : 4 } ) +t.insert( { x : 7 } ) +t.insert( { x : 5 } ) +t.insert( { x : 6 } ) + +m = function(){ + emit( "a" , this.x ) +} + +r = function( k , v ){ + return Array.sum( v ) +} + + +res = t.mapReduce( m , r ); +x = res.convertToSingleObject(); +res.drop(); +assert.eq( { "a" : 55 } , x , "A1" ) + +res = t.mapReduce( m , r , { query : { x : { $lt : 3 } } } ) +x = res.convertToSingleObject(); +res.drop(); +assert.eq( { "a" : 3 } , x , "A2" ) + +res = t.mapReduce( m , r , { sort : { x : 1 } , limit : 2 } ); +x = res.convertToSingleObject(); +res.drop(); +assert.eq( { "a" : 3 } , x , "A3" ) + + + + |