I want to aggregate by 2 fields and wish to have the gouping done in a nested way. How do I achieve it? Currently I do the grouping in following way
var query = [
{ '$group': {
'_id': {
'employee': '$employee',
'sector': '$sector'
},
'bookCount': { '$sum': 1 }
}},
{ '$sort': { 'count': -1 } }
];
Order.aggregate(query, function(err, results){
res.json(results)
});
I want the results to be in the form
{abc:{sector1:4, sector3:5}, xyz: {sector1:10, sector2:23}}
where abc, xyz are employees and sector1, sector2 are sectors.
How do I aggregate to get nested results?
My original document is
[
{
"sector": "sector1",
"employee": "xyz"
},
{
"sector": "sector1",
"employee": "abc"
},
{
"sector": "sector1",
"employee": "abc"
},
{
"sector": "sector2",
"employee": "abc"
}
]
I want result to be of the form
{abc:{sector1:2,sector2:2}, xyz: {sector1:1}}