シンプルな MongoDB MapReduce を実行して、データベース内のアクティブ ユーザーをカウントしようとしています (以下を参照)。
何らかの理由で、スクリプトがデータベース全体をフェッチしていないようです。400 件のレコードがありますが、合計すると 80 件しかカウントされません。
何か間違ったことをしていますか、それともキーごとの値に制限がありますか? どんな助けでも大歓迎です。
db.user.mapReduce(
// map
function() {
emit(this.state, {count: 1});
},
// reduce
function(key, val) {
var counttotal = 0;
var countActive = 0;
for (var i in val) {
data = val[i];
counttotal++;
// active state
if (key == 1) {
countActive++;
}
}
return {
countActive: countActive,
counttotal: counttotal
};
},
{
out: {
replace: "report"
},
query: {
created_on: { $lt: new Date(2013, 8) }
}
})