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