summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/mr.cpp2
-rw-r--r--jstests/mr1.js11
2 files changed, 13 insertions, 0 deletions
diff --git a/db/mr.cpp b/db/mr.cpp
index 4521f7631ca..4ab3ccf9bb0 100644
--- a/db/mr.cpp
+++ b/db/mr.cpp
@@ -235,6 +235,8 @@ namespace mongo {
s->localConnect( database->name.c_str() );
string resultColl = tempCollectionName( cmdObj.firstElement().valuestr() );
+ if ( cmdObj["out"].type() == String )
+ resultColl = database->name + "." + cmdObj["out"].valuestr();
string resultCollShort = resultColl.substr( database->name.size() + 1 );
log(1) << "\t resultColl: " << resultColl << " short: " << resultCollShort << endl;
db.dropCollection( resultColl );
diff --git a/jstests/mr1.js b/jstests/mr1.js
index 82a2e8e7cf5..f999b9d3d64 100644
--- a/jstests/mr1.js
+++ b/jstests/mr1.js
@@ -49,6 +49,17 @@ assert.eq( 1 , z.b , "C2" );
assert.eq( 2 , z.c , "C3" );
x.drop();
+res = db.runCommand( { mapreduce : "mr1" , out : "foo" , map : m , reduce : r , query : { x : { "$gt" : 2 } } } );
+assert.eq( 2 , res.numObjects , "B2" );
+assert.eq( "foo" , res.result , "B2-c" );
+x = db[res.result];
+z = {};
+x.find().forEach( function(a){ z[a.key] = a.value.count; } );
+assert.eq( 1 , z.a , "C1a" );
+assert.eq( 1 , z.b , "C2a" );
+assert.eq( 2 , z.c , "C3a" );
+x.drop();
+
for ( i=5; i<1000; i++ ){