Аз лично открих, че при големи бази данни (1TB и повече) приеманият отговор е ужасно бавен. Агрегацията е много по-бърза. Примерът е по-долу:
db.places.aggregate(
{ $group : {_id : "$extra_info.id", total : { $sum : 1 } } },
{ $match : { total : { $gte : 2 } } },
{ $sort : {total : -1} },
{ $limit : 5 }
);
Той търси документи, чийто extra_info.id
се използва два или повече пъти, сортира резултатите в низходящ ред на дадено поле и отпечатва първите 5 стойности от него.