I have the results of my query in result but I can not pass it to browser, it is showing empty.
how can I return the result to res.send('result')?
myApp.get('/agg',function(req,res){
MongoClient.connect(url, function(err, db) {
// Execute aggregate, notice the pipeline is expressed as an Array
db.collection('projects').aggregate([{$match:{school_state:"DC"}}, {$group:{_id: "$primary_focus_subject",total_amount:{$sum: "$total_donations"}}}],function(err,result){
console.log(result);
db.close();
});
});
res.send(result);
});
You have 2 solutions :
put res.send(result); where you have console.log(result)
having a promise wrapping your MongoClient.connect like this :
let promise = new Promise((resolve,reject)=>{
MongoClient.connect(url,function(err,db){
db.collection('projects').aggregate([{$match:{school_state:"DC"}}, {$group:{_id: "$primary_focus_subject",total_amount:{$sum: "$total_donations"}}}],function(err,result){
if(err) reject(err)
resolve(result);
});
});
})