使用 nodejs、express、mongojs 和 mongodb 查询变量不起作用

Query with variables not working using nodejs ,express, mongojs and mongodb

我的应用程序需要获取此查询的结果(这已经在 mongoDb 中给出了正确的结果):

  var denominator = db.getCollection('Transactions').aggregate({
     $group: { 
        "_id": null, 
        "Alltotal": {$sum:"$transAmount"}
     }
   };
  db.getCollection('Transactions').aggregate([{
  $group: { 
    _id: '$merchantCode', 
    total: {
        $sum: { $multiply: ['$transAmount', 100 ]}

 }}},
   { $project: { 

       percentage: { 
         $divide: [ 
           "$total", 
          denominator.toArray()[0].Alltotal
          ] 
      } 
   }
 }
])

下面是我尝试执行它的方式:

  var express = require('express');
  var app = express();
  var mongojs = require('mongojs');
  var dbTransaction = mongojs('dataAnalysisDb',['Transactions']);

  app.get('/Transactions',function(req,res){

  var denominator = dbTransaction.Transactions.aggregate([{
                    $group: {
                           _id: 'null',
                           total: { $sum: '$transAmount' }
                         }
                      }]);
   dbTransaction.Transactions.aggregate([{
    $group: {
        _id: '$mtype',
        total: {
            $sum: { $multiply: ['$transAmount', 100 ]}

     }}},
       { $project: {
           percentage: {
             $divide: [
               "$total",
               denominator.toArray()[0].total
              ]
          }
       }
    },
     { $sort : { _id : 1, posts: 1 } }
   ], function(err,docs){
    console.log(docs); //this is for testing
    res.json(docs);
   });
 });

我认为这是行不通的,因为我没有以正确的方式将变量发送到服务器,并且当我在操作中使用它时,它没有被定义。我将不胜感激有关如何修复它的任何建议。 谢谢

我找到了解决它的方法,它可能不是最好的,但它很有效,我把它留在这里供需要它的人使用

var denominator =  dbTransaction.Transactions.aggregate([{
     $group: {
           "_id": null,
           "Alltotal": {$sum:"$transAmount"}
     }}]).toArray(function(err,items){
         console.log(items[0].Alltotal); //this is for testiong
         dbTransaction.Transactions.aggregate([{
             $group: {
                 _id: '$mtype',
                 total: {
                     $sum: { $multiply: ['$transAmount', 100 ]}

              }}},
                { $project: {
                    percentage: {
                      $divide: [
                        "$total",
                        items[0].Alltotal
                       ]
                   }
                }
             },
              { $sort : { _id : 1, posts: 1 } }
            ],function(err,docs){
         console.log(docs); //this is for testing
         res.json(docs);
       });
       });