使用存储的json数据在mongo中对数据进行分组

时间:2015-06-05 08:00:15

标签: mongodb aggregation-framework

这是我在mongo db中的数据:

{
    "_id": ObjectId("556d1c7716efd4a035d8e473"),
    "products": [
        {
            "gtin": 77770000222313,
            "gpc": 10000068
        },
        {
            "gtin": 77770000222312,
            "gpc": 10000068
        }
    ]
}

如何聚合这个以便我获得gpc值,然后在gtins的数组下?类似的东西:

{
    "gpc":10000068,
    "gtin":[77770000222312,77770000222313]
}

1 个答案:

答案 0 :(得分:2)

使用聚合框架

db.collection.aggregate(
    [
      { $unwind: "$products" },
      { $group: { _id: "$products.gpc", gtin: { $push: "$products.gtin" }}},
      { $project: { gpc: "$_id", gtin: 1, _id: 0 }}
    ]
)