Persoonlijk vond ik dat op grote databases (1TB en meer) het geaccepteerde antwoord vreselijk traag is. Aggregatie gaat veel sneller. Voorbeeld staat hieronder:
db.places.aggregate(
{ $group : {_id : "$extra_info.id", total : { $sum : 1 } } },
{ $match : { total : { $gte : 2 } } },
{ $sort : {total : -1} },
{ $limit : 5 }
);
Het zoekt naar documenten waarvan extra_info.id
wordt twee keer of vaker gebruikt, sorteert resultaten in aflopende volgorde van gegeven veld en drukt de eerste 5 waarden ervan af.