Вы можете попробовать ниже агрегации
В основном Вам необходимо использовать $group
этап несколько раз здесь.
db.collection.aggregate([
{ "$group": {
"_id": {
"CountryName": "$CountryName",
"SmartClassification": "$SmartClassification"
},
"count": { "$sum": 1 }
}},
{ "$group": {
"_id": "$_id.CountryName",
"data": {
"$push": {
"SmartClassification": "$_id.SmartClassification",
"count": "$count"
}
}
}}
])
Данные, которые вы будете получать примерно так
const myData = [
{ "_id": "Spain", "data": [{ "SmartClassification": "Special Focus", "count": 1 }] },
{ "_id": "Malaysia", "data": [{ "SmartClassification": "Investment Focus", "count": 1 }] },
{ "_id": "Nigeria", "data": [{ "SmartClassification": "Fundamental Focus", "count": 2 }] }
]
Теперь вы можете перебирать данные и отображать что-то подобное на своей html-странице
myData.map((country) => {
return(
<div>{country._id}</div>
{country.data.map((da) => {
return(
<div>{da.SmartClassification}</div>
<div>{da.count}</div>
)
})}
)
})