summaryrefslogtreecommitdiff
path: root/jstests/sharding/map_reduce_validation.js
blob: 436ff395ece8e840a28348f3ea6f16f844cb586a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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();