mirror of
https://github.com/mongodb/mongo.git
synced 2024-12-01 01:21:03 +01:00
39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
|
|
t = db.group5;
|
|
t.drop();
|
|
|
|
// each group has groupnum+1 5 users
|
|
for ( var group=0; group<10; group++ ){
|
|
for ( var i=0; i<5+group; i++ ){
|
|
t.save( { group : "group" + group , user : i } )
|
|
}
|
|
}
|
|
|
|
function c( group ){
|
|
return t.group(
|
|
{
|
|
key : { group : 1 } ,
|
|
q : { group : "group" + group } ,
|
|
initial : { users : {} },
|
|
reduce : function(obj,prev){
|
|
prev.users[obj.user] = true; // add this user to the hash
|
|
},
|
|
finalize : function(x){
|
|
var count = 0;
|
|
for (var key in x.users){
|
|
count++;
|
|
}
|
|
|
|
//replace user obj with count
|
|
//count add new field and keep users
|
|
x.users = count;
|
|
return x;
|
|
}
|
|
})[0]; // returns array
|
|
}
|
|
|
|
assert.eq( "group0" , c(0).group , "g0" );
|
|
assert.eq( 5 , c(0).users , "g0 a" );
|
|
assert.eq( "group5" , c(5).group , "g5" );
|
|
assert.eq( 10 , c(5).users , "g5 a" );
|