Cá nhân tôi thấy rằng trên các cơ sở dữ liệu lớn (1TB trở lên), câu trả lời được chấp nhận là rất chậm. Tổng hợp nhanh hơn nhiều. Ví dụ bên dưới:
db.places.aggregate(
{ $group : {_id : "$extra_info.id", total : { $sum : 1 } } },
{ $match : { total : { $gte : 2 } } },
{ $sort : {total : -1} },
{ $limit : 5 }
);
Nó tìm kiếm các tài liệu có extra_info.id
được sử dụng hai lần trở lên, sắp xếp kết quả theo thứ tự giảm dần của trường nhất định và in ra 5 giá trị đầu tiên của trường đó.