Ich persönlich habe festgestellt, dass die akzeptierte Antwort in großen Datenbanken (1 TB und mehr) schrecklich langsam ist. Die Aggregation ist viel schneller. Beispiel ist unten:
db.places.aggregate(
{ $group : {_id : "$extra_info.id", total : { $sum : 1 } } },
{ $match : { total : { $gte : 2 } } },
{ $sort : {total : -1} },
{ $limit : 5 }
);
Es sucht nach Dokumenten, deren extra_info.id
Wird zweimal oder öfter verwendet, sortiert die Ergebnisse in absteigender Reihenfolge des angegebenen Felds und gibt die ersten 5 Werte davon aus.