2

シンプルな 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) }
    }
})
4

1 に答える 1