summaryrefslogtreecommitdiff
path: root/jstests/core/mr_outreduce2.js
blob: a08b6b51527c324c30ab0a6e973b226596fa95c3 (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
30

normal = "mr_outreduce2";
out = normal + "_out";

t = db[normal];
t.drop();

db[out].drop();

t.insert({_id: 1, x: 1});
t.insert({_id: 2, x: 1});
t.insert({_id: 3, x: 2});

m = function() {
    emit(this.x, 1);
};
r = function(k, v) {
    return Array.sum(v);
};

res = t.mapReduce(m, r, {out: {reduce: out}, query: {_id: {$gt: 0}}});

assert.eq(2, db[out].findOne({_id: 1}).value, "A1");
assert.eq(1, db[out].findOne({_id: 2}).value, "A2");

t.insert({_id: 4, x: 2});
res = t.mapReduce(m, r, {out: {reduce: out}, query: {_id: {$gt: 3}}, finalize: null});

assert.eq(2, db[out].findOne({_id: 1}).value, "B1");
assert.eq(2, db[out].findOne({_id: 2}).value, "B2");