Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-11467

Odd ouput in MapReduce result.

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical - P2 Critical - P2
    • None
    • None
    • 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); }); });   }

    Description

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

      Attachments

        Activity

          People

            amalia.hawkins@10gen.com Amalia Hawkins
            blackgun William Guan
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: