これは遅い答えですが、$group
以降 バージョン4.0以降のMongoでは、まだインデックスを使用していません。他の人に役立つ可能性があります。
集計を大幅に高速化するには、$sort
を実行します $group
の前 。
したがって、クエリは次のようになります。
db.ads_view.aggregate({$sort:{"campaign":1}},{$group: {_id : "$campaign", "action" : {$sum: 1} }});
これは、campaign
のインデックスを前提としています 、あなたの質問に応じて作成されているはずです。 Mongo 4.0では、db.ads_view.createIndex({campaign:1})
を使用してインデックスを作成します 。
5.5以上のMioを含むコレクションでこれをテストしました。ドキュメント。 $sort
なし 、数時間経っても集計は終了しませんでした。 $sort
を使用 先行する$group
、集計には数秒かかります。