summaryrefslogtreecommitdiff
path: root/jstests/core/mr_optim.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/mr_optim.js')
-rw-r--r--jstests/core/mr_optim.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/jstests/core/mr_optim.js b/jstests/core/mr_optim.js
new file mode 100644
index 00000000000..164839e2f2c
--- /dev/null
+++ b/jstests/core/mr_optim.js
@@ -0,0 +1,48 @@
+
+
+t = db.mr_optim;
+t.drop();
+
+for (var i = 0; i < 1000; ++i) {
+ t.save( {a: Math.random(1000), b: Math.random(10000)} );
+}
+
+function m(){
+ emit(this._id, 13);
+}
+
+function r( key , values ){
+ return "bad";
+}
+
+function reformat( r ){
+ var x = {};
+ var cursor;
+ if ( r.results )
+ cursor = r.results;
+ else
+ cursor = r.find();
+ cursor.forEach(
+ function(z){
+ x[z._id] = z.value;
+ }
+ );
+ return x;
+}
+
+res = t.mapReduce( m , r , { out : "mr_optim_out" } );
+printjson( res )
+x = reformat( res );
+for (var key in x) {
+ assert.eq(x[key], 13, "value is not equal to original, maybe reduce has run");
+}
+res.drop();
+
+res = t.mapReduce( m , r , { out : { inline : 1 } } );
+//printjson( res )
+x2 = reformat( res );
+res.drop();
+
+assert.eq(x, x2, "object from inline and collection are not equal")
+
+t.drop(); \ No newline at end of file