Odd ouput in MapReduce result.

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Done
    • Priority: Critical - P2
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • ALL
    • Hide
      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);
              });
          });
      
      }
      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); }); }); }
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      The MapReduce result has some record like this: 'NaN' shouldn't be there.

      { "_id" : { "app" : "2a3a10f13deefdd13568639068f00d46", "uuid" : "0087bbdd-8b76-4f68-a7b1-976a0dca82b3" }, "value" : { "register" : 0, "login" : 2, "payment" : 0, "transaction" : 0, "transcation" : NaN } }
      { "_id" : { "app" : "2a3a10f13deefdd13568639068f00d46", "uuid" : "00d58b56-242d-4bcb-bf53-00ba22477dec" }, "value" : { "register" : 0, "login" : 1, "payment" : 0, "transaction" : 0 } }

            Assignee:
            Amalia Hawkins (Inactive)
            Reporter:
            William Guan
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: