1. ホーム
  2. mongodb

[解決済み] MongoDB SELECT COUNT GROUP BY

2022-04-06 18:34:56

質問

MongoDBで遊んでいて、簡単な操作をする方法を考えています。

SELECT province, COUNT(*) FROM contest GROUP BY province

しかし、集計機能を使ってもわからないようです。変なグループ構文を使えばできるんですけどね。

db.user.group({
    "key": {
        "province": true
    },
    "initial": {
        "count": 0
    },
    "reduce": function(obj, prev) {
        if (true != null) if (true instanceof Array) prev.count += true.length;
        else prev.count++;
    }
});

しかし、集約関数を使ったもっと簡単で早い方法はないのでしょうか?

どのように解決するのですか?

を使って行うのが簡単な方法でしょう。 aggregate :

db.contest.aggregate([
    {"$group" : {_id:"$province", count:{$sum:1}}}
])