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);
|
});
|
});
|
|
}
|