在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
等为你要转换的列名。