summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSpencer Jackson <spencer.jackson@mongodb.com>2017-09-06 18:36:10 -0400
committerSpencer Jackson <spencer.jackson@mongodb.com>2017-09-20 17:11:44 -0400
commit191c6c43650c5655a530bdd0228cd4370975416e (patch)
treee5b58d5abc7a4ea1187f0f95994b222c3b58a126
parent41798bb7ecfa6d5d491f02f9dba68681da486355 (diff)
downloadmongo-191c6c43650c5655a530bdd0228cd4370975416e.tar.gz
SERVER-30971: Own "scope" BSONObj in mapReduce
(cherry picked from commit f668265318237dc75708a20254e695869487d884) (cherry picked from commit 876ebee8c7dd0e2d992f36a848ff4dc50ee6603e)
-rw-r--r--jstests/core/mr4.js6
-rw-r--r--src/mongo/db/commands/mr.cpp4
2 files changed, 5 insertions, 5 deletions
diff --git a/jstests/core/mr4.js b/jstests/core/mr4.js
index ae5e11528af..2b8e93c3b35 100644
--- a/jstests/core/mr4.js
+++ b/jstests/core/mr4.js
@@ -9,7 +9,7 @@ t.save({x: 4, tags: ["b", "c"]});
m = function() {
this.tags.forEach(function(z) {
- emit(z, {count: xx});
+ emit(z, {count: xx.val});
});
};
@@ -23,7 +23,7 @@ r = function(key, values) {
};
};
-res = t.mapReduce(m, r, {out: "mr4_out", scope: {xx: 1}});
+res = t.mapReduce(m, r, {out: "mr4_out", scope: {xx: {val: 1}}});
z = res.convertToSingleObject();
assert.eq(3, Object.keySet(z).length, "A1");
@@ -33,7 +33,7 @@ assert.eq(3, z.c.count, "A4");
res.drop();
-res = t.mapReduce(m, r, {scope: {xx: 2}, out: "mr4_out"});
+res = t.mapReduce(m, r, {scope: {xx: {val: 2}}, out: "mr4_out"});
z = res.convertToSingleObject();
assert.eq(3, Object.keySet(z).length, "A1");
diff --git a/src/mongo/db/commands/mr.cpp b/src/mongo/db/commands/mr.cpp
index a85355cdceb..ced9f2bbdb7 100644
--- a/src/mongo/db/commands/mr.cpp
+++ b/src/mongo/db/commands/mr.cpp
@@ -308,7 +308,7 @@ Config::Config(const string& _dbname, const BSONObj& cmdObj) {
// scope and code
if (cmdObj["scope"].type() == Object)
- scopeSetup = cmdObj["scope"].embeddedObjectUserCheck();
+ scopeSetup = cmdObj["scope"].embeddedObjectUserCheck().getOwned();
mapper.reset(new JSMapper(cmdObj["map"]));
reducer.reset(new JSReducer(cmdObj["reduce"]));
@@ -316,7 +316,7 @@ Config::Config(const string& _dbname, const BSONObj& cmdObj) {
finalizer.reset(new JSFinalizer(cmdObj["finalize"]));
if (cmdObj["mapparams"].type() == Array) {
- mapParams = cmdObj["mapparams"].embeddedObjectUserCheck();
+ mapParams = cmdObj["mapparams"].embeddedObjectUserCheck().getOwned();
}
}