阅读量:3
在MongoDB中,可以使用聚合管道操作来进行行列转换。以下是一种常见的方法:
- 使用
$group
操作按照需要转换的列进行分组,将每个列的值数组保存起来。 - 使用
$project
操作将每个列的数组通过$arrayToObject
转换为键值对的形式,其中键为列名,值为列的值。 - 使用
$replaceRoot
操作将每个键值对转换为顶层字段。
以下是一个示例:
db.collection.aggregate([ { $group: { _id: null, column1: { $push: "$column1" }, column2: { $push: "$column2" }, // 添加需要转换的其他列 } }, { $project: { _id: 0, convertedColumns: { $arrayToObject: [ { k: "column1", v: "$column1" }, { k: "column2", v: "$column2" }, // 添加其他列的键值对 ] } } }, { $replaceRoot: { newRoot: "$convertedColumns" } } ])
注意替换collection
为你要操作的集合名称,column1
、column2
等为你要转换的列名。