内部数组中的对象分组(mongodb聚合)

时间:2018-06-16 21:40:52

标签: mongodb mongodb-query aggregation-framework

我有以下文档:

{
    "products": [
        {
           "uid": "aside-11kka-asdm12-asdjl"
           "price": 123,
           "count": 123
        }
    ]
}

我希望将其分组为产品数组,使用聚合(产品uid可以在另一个对象中重复)

1 个答案:

答案 0 :(得分:1)

首先需要$unwind才能对嵌套数组进行分组

db.collection.aggregate([
  {
    "$unwind": "$products"
  },
  {
    $group: {
      "_id": "$products.uid",
      "count": {
        $push: "$products.count"
      },
      "price": {
        $push: "$products.price"
      }
    }
  }
])