私は個人的に、大きなデータベース(1TB以上)では受け入れられる答えがひどく遅いことに気づきました。集約ははるかに高速です。例を以下に示します:
db.places.aggregate(
{ $group : {_id : "$extra_info.id", total : { $sum : 1 } } },
{ $match : { total : { $gte : 2 } } },
{ $sort : {total : -1} },
{ $limit : 5 }
);
extra_info.id
のドキュメントを検索します は2回以上使用され、結果を指定されたフィールドの降順で並べ替え、その最初の5つの値を出力します。