Mongo聚合添加到子元素

时间:2016-06-10 15:41:55

标签: mongodb mongodb-query

我得到了像

这样的文件
{
    "_id" : ObjectId("5756c699fc5a2a09308a1c97"),
    "bucket" : [ 
        {
            "productid" : "Book1",
            "name" : "Sample Book1"
        }, 
        {
            "productid" : "Book2",
            "name" : "Sample Book 2"
        }
    ],
    "creatorId" : "c6c3a8f3"
}

有什么方法可以将creatorId添加到存储桶中的每个项目并获得结果:

{
    "_id" : ObjectId("5756c699fc5a2a09308a1c97"),
    "bucket" : [ 
        {
            "productid" : "Book1",
            "name" : "Sample Book1",
             "creatorId" : "c6c3a8f3"
        }, 
        {
            "productid" : "Book2",
            "name" : "Sample Book 2",
             "creatorId" : "c6c3a8f3"
        }
    ]

}

1 个答案:

答案 0 :(得分:0)

如果要重新整理集合,可以使用聚合框架 - 然后取消注释聚合管道的$ out阶段,结果将存储在集合newCollectionName

db.andrej.aggregate([{
            $unwind : "$bucket"
        }, {
            $group : {
                _id : "$_id",
                bucket : {
                    $push : {
                        productid : "$bucket.productid",
                        name : "$bucket.name",
                        creatorId : "$creatorId"
                    }
                }
            }
        },
        //{$out:"newCollectionName"}
    ])