0

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);

});

1 Answer 1

1

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);
        });
      });    
    })
    
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.