You can try,
$arrayToObjects
to setfoo
as k(key) andbar
as v(value) and convert to object format$mergeObjects
to merge$$ROOT
and above operation result$replaceRoot
to replace above both merge object result in root$project
to removebar
field because we don’t needed
db.collection.aggregate([
{
$replaceRoot: {
newRoot: {
$mergeObjects: [
{ $arrayToObject: [[{ k: "$_id.foo", v: "$bar" }]] },
"$$ROOT"
]
}
}
},
{ $project: { bar: 0 } }
])
CLICK HERE to find out more related problems solutions.