在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
等為你要轉換的列名。