同一文档中以及文档之间的Concat数组

时间:2019-06-19 15:44:21

标签: mongodb

我在Mongo中拥有以下文件:

{
    "_id": ...,
    "accel": [{"x": xv1, "y": yv2}, {"x": xv2, "y": yv2}]
},
{
    "_id": ...,
    "accel": [{"x": xv3, "y": yv3}, {"x": xv4, "y": yv4}]
}

我希望将结果作为一个单一文档获得,例如:

{
    "x": [xv1, xv2, xv3, xv4],
    "y": [yv1, yv2, yv3, yv4]
}

有人知道我该怎么做吗?

1 个答案:

答案 0 :(得分:1)

db.collection.aggregate([
    {
       $unwind: "$accel"
    },
    {
       $group: {
         _id: null,
         x: {$push: "$accel.x"},
         y: {$push: "$accel.y"}
       }
    }
])

如果您关心数组中的顺序,则应添加$ sort阶段。