説明したとおりに機能するインデックスを作成することはできません。集計を実行するときに、パイプラインステップの出力の1つに「インデックスを付ける」方法はありません。
を使用できる集計演算子がいくつかあります。 MongoDBコレクションインデックス 。
現在、それらには次のものが含まれます:$match 、$sort 、$limit 、および$skip 。
$matchとして はその1つです。特に、$matchを正しく配置した場合は、2つのフィールドで複合インデックスを宣言することで、作成した集計クエリのパフォーマンスが向上する可能性があります。 パイプラインの開始時:
db.theCollection.ensureIndex({user: 1, type: 1})
$group パイプラインのステップは、$matchから結果を取得します 理想的には、比較的迅速に。 :)