Anda tidak dapat membuat indeks yang berfungsi seperti yang Anda gambarkan. Tidak ada cara untuk "mengindeks" salah satu output dari langkah pipeline saat menjalankan agregasi.
Ada beberapa operator agregasi yang dapat bekerja dengan Indeks koleksi MongoDB .
Saat ini, mereka termasuk:$match
, $sort
, $limit
, dan $skip
.
Sebagai $match
adalah salah satunya, kinerja kueri agregasi yang Anda tulis mungkin bermanfaat dengan mendeklarasikan indeks gabungan pada dua bidang, terutama karena Anda telah menempatkan $match
dengan benar di awal alur:
db.theCollection.ensureIndex({user: 1, type: 1})
$group
langkah dalam pipa akan mengambil hasil dari $match
dan idealnya, relatif cepat. :)