0

これは logins という名前の私のコレクションです

db.logins.find().pretty()


      "cust_id" : "testuser",
       "created_at" : "2011-03-11 10:31:02.765"

      "cust_id" : "testuser",
      "created_at" : "2011-03-11 10:31:02.765"

日付に基づいて各ユーザーのログインを見つけようとしています

私はこのようにしてみました

var m = function() {
    var aux = this.created_at.indexOf(' ');
    emit({cust:this.cust_id,daterr:this.created_at.substring(0,aux)},1);
}

var r = function(k, values) {
  var l = values.length;
  var r = 0;
  var i;
  for (i=0; i<l; i++) {
    r+=l;
  }
  return r;
}

 q = function() {
        var query = {"created_at": {$lt: "2013-04-30 11:19:52.587"}}
        return query;
    }

db.logins.mapReduce(m, r, { query : q(), out :  "userLoginCountMonthly" });

次の出力を取得しています

db.userLoginCountMonthly.find().pretty()

{ "_id" : { "cust" : "testuser", "daterr" : "2011-03-11" }, "value" : 4 }

私が見ているのは、値が 2 でなければならないということですが、それは 4 と表示されています

なぜ間違って表示されるのか教えてください??

4

1 に答える 1