该字段必须是一个累加器对象

时间:2019-08-28 15:11:29

标签: mongodb aggregation-framework

我刚刚读到了有关猫鼬聚合的信息,这似乎是非常有用的方法,我只是自己进行了测试,所以这是数据库中的数据:

[
  {
    product: "chanchuris arayi",
    myidveli: "lg",
    pasi: 12
  },
  {
    product: "kalbasi",
    myidveli: "maiko",
    pasi: 10
  },
  {
    product: "chanchuris arayi",
    myidveli: "zaza",
    pasi: 12
  },
  {
    product: "sulguni",
    myidveli: "shotiko",
    pasi: 7
  },
  {
    product: "kalbasi",
    myidveli: "lg",
    pasi: 10
  }
]

这是我的代码

db.collection.aggregate([
  {
    $match: {}
  },
  {
    $group: {
      _id: "$_id",
      product: "$product",
      pasi: {
        "$sum": "$pasi"
      }
    }
  }
])

并给我错误:该字段必须是一个累加器对象,当我在_id字段中键入$ product时,它可以按我的方式工作,但不是这样,所以我很困惑,有人可以向我解释一下聚合工作正常,我的代码有什么问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

我希望这是您要查询的查询:

db.collection.aggregate( [{ 
$unwind: {  path: "$test"} }, {
$group: {  "_id": "$test.product",  
"pasi": { $sum: "$test.pasi"  }} }] )