javascript - 如何从mongodb聚合中获取值

标签 javascript node.js mongodb ejs

我试图从 mongodb 聚合中获取一个值,以通过totalAmount 在 ejs 页面中呈现,我得到的结果是 [{"totalAmount":42}],在本例中我只想获取数字 42

我尝试过用 .replace 删除方括号,并将 .totalAmount 附加到变量金额,但它不起作用。

app.get("/order", function(req, res) {

var amount;   

 var total = Order.aggregate([{
    $group: {
        _id: null,
        totalAmount: { $sum: '$total' }
    }
 }, {
    $project: {
        _id: 0
    } }]).exec(function (e,d) {
                  console.log(d)
                 amount = JSON.stringify(d)
            });

    Order.find({}, function(err, data) { 
       res.render("order", {ordenItem: data, totalAmount: amount});  
    });
});

最佳答案

聚合的结果是 [{"totalAmount":42}],如您所见,它是一个只有一个元素的数组,只需读取它,这里有一个示例:

app.get("/order", function(req, res) {   

var total = Order.aggregate([{
   $group: {
      _id: null,
      totalAmount: { $sum: '$total' }
   }
  }, {
      $project: {
           _id: 0
     } }]).exec(function (e,doc) {
               console.log(doc);
               let amount = doc[0].totalAmount;
               console.log(doc[0].totalAmount);
               Order.find({}, function(err, data) { 
                  res.render("order", {ordenItem: data, totalAmount: amount});  
               });
       });
 });

关于javascript - 如何从mongodb聚合中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57641096/

相关文章:

javascript - 可以使用 addEventListener 将哪些事件添加到 WinJS.Promise?

javascript - 基本的 else if 和 return javascript

javascript - 如何进入数组中的对象

node.js - 如何让 EXPIRE 在 TTL 达到 0 时自动更新

MongoDB select count(distinct x) on an indexed column - 计算大型数据集的唯一结果

javascript - 检查一个数组在另一个数组中的元素

node.js - 改进express.js模块的使用

node.js - 如何增加 Node.js 中脚本的最大执行时间?

java - 从 Java 应用程序中启动 mongodb

java - SpringBoot嵌入mongo测试用例异常