これは 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 と表示されています
なぜ間違って表示されるのか教えてください??