sql >> データベース >  >> NoSQL >> MongoDB

集約フレームワークはインデックスを使用できません

    これは遅い答えですが、$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 、集計には数秒かかります。



    1. セロリ労働者が一生懸命死んだ場合、仕事は再試行されますか?

    2. Redis/Jedisは単一障害点および自動フェイルオーバーではありません

    3. MongoDB $ toObjectId

    4. mongodbでfindOneを使用して、最大IDの要素を取得します