在聚合管道的$group阶段中,可以使用$push和$reduce操作符将数组转换为对象。
具体步骤如下:
示例代码如下:
db.collection.aggregate([
{
$group: {
_id: "$groupField",
newArray: { $push: "$arrayField" }
}
},
{
$project: {
convertedObject: {
$reduce: {
input: "$newArray",
initialValue: {},
in: {
$concatArrays: [
"$$value",
{ $arrayToObject: [[{ k: "$$this.key", v: "$$this.value" }]] }
]
}
}
}
}
},
{
$replaceRoot: {
newRoot: "$convertedObject"
}
}
])
领取专属 10元无门槛券
手把手带您无忧上云