Javascript 如何在Mongo中减去2个日期?

Javascript 如何在Mongo中减去2个日期?,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我有两次约会;销售日期(服务出售时)和取消日期(服务取消时)。我想在取消日期-销售日期之间做一个减法,按月计算任期 这是我目前正在执行的代码: router.get('/subtract_date', auth, async (req, res) => { try { const model_CancellationKPI = await CancellationKPI.aggregate([ { "$project" : { "difference" : { "

我有两次约会;销售日期(服务出售时)和取消日期(服务取消时)。我想在取消日期-销售日期之间做一个减法,按月计算任期

这是我目前正在执行的代码:

router.get('/subtract_date', auth, async (req, res) => {
try {
    const model_CancellationKPI = await CancellationKPI.aggregate([ 
        { "$project" : { "difference" : { "$subtract" : ["$cancellation_date", "$sales_date"] } } }
    ])

    res.json(model_CancellationKPI);


} catch (err) {
    console.error(err.message);
    res.status(500).send('Server Error');
});
JSON输出为:

  {
    "_id": "5d30c48e5fbf3c0507250bb5",
    "difference": 31536000000
}
我有这样一个JSON:我如何输出一个JSON,按客户名称显示每月的任期(取消日期-销售日期)


您的日期差异查询工作正常,它应该以毫秒为单位给出所有需要转换回日期的结果。您可以检查上述查询的结果

这是数组吗?[“$取消日期”、“$销售日期”]?如果没有,请使用{“$cancellation_date”,“$sales_date”}我收到以下错误消息:参数必须是聚合管道运算符我可能放错了右大括号,请检查是否已编辑答案@ManfredTijerinoI已收到此错误消息:错误解析日期字符串“difference”;0:不允许将时区标识符作为字符串的一部分传递给“d”;6:双时区规范“e”
await CancellationKPI.aggregate([ 
    { "$project" : { "difference" : { "$subtract" : ["$cancellation_date", "$sales_date"] } ,  $add: [
      new Date(0),
      "$difference"
    ] }}
]);