Show
exports.basic = function(){
var map = function(){
var key = {
app:this.properties.YA0token,
uuid:this.properties.distinct_id // for registered user, using user:account
}
var value = {
register:0,
login:0,
payment:0,
transaction:0
};
if (this.event=='register') {
value.register = 1;
} else if (this.event=='login') {
value.login = 1;
} else if (this.event=='YA0charge') {
value.payment = this.properties.amount;
value.transaction = 1;
}
print(value.register,value.login,value.payment,value.transaction);
emit(key,value);
}
var reduce = function(key,values){
var result = {
register:0,
login:0,
payment:0,
transaction:0
};
values.forEach(function(value){
result.register += value.register;
result.login += value.login;
result.payment += value.payment;
result.transcation += value.transcation;
print('value:',value.register,value.login,value.payment,value.transaction);
});
return result;
}
var options = {
// out:{reduce:"mr_users"}, // reduce : add the value of same key
out:{merge:"mr_users"},
query:{
"event":{$in:["register","login","YA0charge"]},
"properties.time": {"$gte": new Date("9 1 2013"), "$lt": new Date("9 3 2013")}
}
}
eventCollection.mapReduce(map,reduce,options,function (err, collection2) {
logger.info('MapReduce for basic is done.');
collection2.find().toArray(function(err,item){
logger.silly(item);
});
});
}