30 lines
1.4 KiB
JavaScript
30 lines
1.4 KiB
JavaScript
var st = new ShardingTest({ shards: 1 });
|
|
|
|
var testDB = st.s.getDB('test');
|
|
|
|
var mapFunc = function() { emit(this.x, 1); };
|
|
var reduceFunc = function(key, values) { return values.length; };
|
|
|
|
assert.commandFailed(testDB.runCommand({ mapReduce: 'user',
|
|
map: mapFunc,
|
|
reduce: reduceFunc,
|
|
out: { inline: 1, sharded: true }}));
|
|
|
|
testDB.bar.insert({i: 1});
|
|
assert.commandFailed(testDB.runCommand({ mapReduce: 'bar',
|
|
map: function() {emit(this.i, this.i*3);},
|
|
reduce: function(key, values) {return Array.sum(values)},
|
|
out: { replace: "foo", db: "admin" }}));
|
|
|
|
assert.commandFailed(testDB.runCommand({ mapReduce: 'bar',
|
|
map: function() {emit(this.i, this.i*3);},
|
|
reduce: function(key, values) {return Array.sum(values)},
|
|
out: { replace: "foo", db: "config" }}));
|
|
|
|
assert.commandWorked(testDB.runCommand({ mapReduce: 'bar',
|
|
map: function() {emit(this.i, this.i*3);},
|
|
reduce: function(key, values) {return Array.sum(values)},
|
|
out: { replace: "foo", db: "test" }}));
|
|
|
|
st.stop();
|