Bạn sẽ cần hai nhóm trong trường hợp này. Nhóm đầu tiên tạo một luồng tài liệu với một tài liệu cho mỗi thuật ngữ và danh mục:
{ $group : {
_id : {
category: "$category",
term: "$term",
},
total: { $sum : 1 }
}
}
Sau đó, nhóm thứ hai sẽ hợp nhất tất cả các tài liệu có cùng một cụm từ thành một, sử dụng toán tử $ push để hợp nhất các danh mục thành một mảng:
{ $group : {
_id : "$_id.category",
terms: {
$push: {
term:"$_id.term",
total:"$total"
}
}
}
}