$divide 累加器是一个一元运算符

Kir*_*ill 4 mongoose mongodb mongodb-query aggregation-framework

我创建了一个对 Mongo DB 的请求:

{
    $project:
      {
        difference:
          {
            $subtract: ['$' + endDate, '$' + startDate]
          }
      }
  },
  {
    $match:
      {
        difference:
          {
            $gte: 0
          }
      }
  },
  {
    $group:
      {
        _id: null,
        avgTime:
          {
            $divide:
              [
                {
                  $avg: "$difference"
                }, 60000 // in minutes
              ]
          }
      }
  }
Run Code Online (Sandbox Code Playgroud)

我试着:

  1. difference计算结束日期和开始日期之间的差值,并在该差值> 0时取其值
  2. 计算平均值
  3. 除以 60000(得到分钟)

但我得到了错误:累加器$divide是一元运算符

我该如何解决这个请求?

tur*_*hal 5

但我收到错误: $divide 累加器是一元运算符

运算<accumulator>符必须是以下累加器运算符之一:accumulator-operator,并且$divide运算符不是其中之一,

$avg如果要求平均值,则运算符必须为根,

更正阶段中的语法$group并添加新阶段以获取$divide

  {
    $group: {
      _id: null,
      avgTime: { $avg: "$difference" }
    }
  },
  {
    $project: {
      avgTime: { $divide: ["$avgTime", 60000] }
    }
  }
Run Code Online (Sandbox Code Playgroud)