I'm having problems on populating the "Main" collection, grouping works pretty well but I really don't know how to populate or even .find after aggregating. I believe I'm doing a Model casting here or so:
Main.aggregate([
{$match : query},
{
$group:{
_id: queryGroupBy,
activated: {$sum: '$activated'},
componentTitle: {$first:'$componentTitle'},
titlePrefix: {$first:'$titlePrefix'},
operator_name: {$first:'$operator_name'}
}
},
{
$project:{
_id: '$_id',
summation: '$activated',
componentTitle: '$componentTitle',
titlePrefix: '$titlePrefix',
operator_name: '$operator_name'
}
}],
function(err,results) {
if (err) throw err;
result = results.map(function(doc) {
doc._id = doc._id,
doc.activated = doc.activated,
doc.componentTitle = doc.componentTitle,
doc.titlePrefix = doc.titlePrefix,
doc.operator_name = doc.operator_name,
doc.fssStatusFDD = "",
doc.dateUpdated = "",
delete doc._id;
delete doc.summation;
var _main = new Main();
_main = doc;
console.log('test3');
return _main
});
Main.populate( results, { "path": "operator_name" }, function(err,results) {
if (err) throw err;
console.log( JSON.stringify( results, undefined, 4 ) );
});
console.log('good');
return res.send(results);
});
Any suggestion is welcome and appreciated.
Found the answer seems that this will do the trick. hope this helps