Saya pribadi menemukan bahwa pada basis data besar (1TB dan lebih banyak) jawaban yang diterima sangat lambat. Agregasi jauh lebih cepat. Contoh di bawah ini:
db.places.aggregate(
{ $group : {_id : "$extra_info.id", total : { $sum : 1 } } },
{ $match : { total : { $gte : 2 } } },
{ $sort : {total : -1} },
{ $limit : 5 }
);
Ini mencari dokumen yang extra_info.id
digunakan dua kali atau lebih, mengurutkan hasil dalam urutan menurun dari bidang yang diberikan dan mencetak 5 nilai pertama darinya.