Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb MongoError:$减法累加器是一元运算符_Mongodb_Mongoose - Fatal编程技术网

Mongodb MongoError:$减法累加器是一元运算符

Mongodb MongoError:$减法累加器是一元运算符,mongodb,mongoose,Mongodb,Mongoose,我似乎找不到解决这个问题的办法。我就是想不出是怎么回事 我已经试过了,但没有希望。邮报也没有进一步解释 这是我的密码: var aggregateOptions; aggregateOptions = [{ $match: { } },{ $group: { _id: "$customerID", totalAmount: { $sum: "$amount" }, totalpaidAmount: { $sum: "$pai

我似乎找不到解决这个问题的办法。我就是想不出是怎么回事

我已经试过了,但没有希望。邮报也没有进一步解释

这是我的密码:

 var aggregateOptions;
  aggregateOptions = [{
    $match: {

    }
  },{
    $group: {
      _id: "$customerID",
      totalAmount: { $sum: "$amount" },
      totalpaidAmount: { $sum: "$paidAmount" },
      totalAmountDue: { $subtract: ["$totalAmount", "totalpaidAmount"] }
    }
  }];

  Sale.sales.get(Sale.Schema, aggregateOptions, (err, saleRecord) => {
    if (err) throw err;
    console.log(saleRecord);

    res.json({
      pageTitle: "Customer List",
      currentUser: req.user,
      saleRecord: saleRecord,
    });
  });

它会提示MongoError:$subtract累加器在我每次查询时都是一元运算符。

将您的查询部分更改为此部分:

aggregateOptions = [
  {
     $match: {

     }
  },
  {
     $group: {
       _id: "$customerID",
       totalAmount: { $sum: "$amount" },
       totalpaidAmount: { $sum: "$paidAmount" }
     }
  },
  {
     $addFields:{
       totalAmountDue: { $subtract: ["$totalAmount", "$totalpaidAmount"] }
     }
  }
];

算术运算符不能在
阶段使用。相反,使用附加的
项目
阶段或
添加字段
阶段,通过
减法
操作添加新字段。sir+Raj存在格式问题,但可以正常工作。一个奇怪的错误。我真的不明白为什么小组赛阶段不能做算术运算。这篇文章只是我对你文章评论的扩展版本
$subtract
不是跟踪
字段
状态的累加器运算符。只有
累加器
运算符可以与
阶段一起使用@RahulRaj说
$group
的字段不能引用在同一阶段新声明的其他字段是否正确?