MongoDB と python で Map Reduce をいじっていて、奇妙な制限に遭遇しました。「本」レコードの数を数えようとしています。レコードが 100 件未満の場合は機能しますが、レコードが 100 件を超えると、何らかの理由でカウントがリセットされます。
これが私のMRコードといくつかのサンプル出力です:
var M = function () {
book = this.book;
emit(book, {count : 1});
}
var R = function (key, values) {
var sum = 0;
values.forEach(function(x) {
sum += 1;
});
var result = {
count : sum
};
return result;
}
レコード数が 99 の場合の MR 出力:
{u'_id': u'superiors', u'value': {u'count': 99}}
レコード数が 101 の場合の MR 出力:
{u'_id': u'superiors', u'value': {u'count': 2.0}}
何か案は?