41 lines
805 B
JavaScript
41 lines
805 B
JavaScript
|
|
t = db.group4;
|
|
t.drop();
|
|
|
|
function test(c, n) {
|
|
var x = {};
|
|
c.forEach(function(z) {
|
|
assert.eq(z.count, z.values.length, n + "\t" + tojson(z));
|
|
});
|
|
}
|
|
|
|
t.insert({name: 'bob', foo: 1});
|
|
t.insert({name: 'bob', foo: 2});
|
|
t.insert({name: 'alice', foo: 1});
|
|
t.insert({name: 'alice', foo: 3});
|
|
t.insert({name: 'fred', foo: 3});
|
|
t.insert({name: 'fred', foo: 4});
|
|
|
|
x = t.group({
|
|
key: {foo: 1},
|
|
initial: {count: 0, values: []},
|
|
reduce: function(obj, prev) {
|
|
prev.count++;
|
|
prev.values.push(obj.name);
|
|
}
|
|
});
|
|
test(x, "A");
|
|
|
|
x = t.group({
|
|
key: {foo: 1},
|
|
initial: {count: 0},
|
|
reduce: function(obj, prev) {
|
|
if (!prev.values) {
|
|
prev.values = [];
|
|
}
|
|
prev.count++;
|
|
prev.values.push(obj.name);
|
|
}
|
|
});
|
|
test(x, "B");
|