Du måste använda $arrayToObject
om du vill bygga dina nycklar dynamiskt. Det tar en array av k
och v
fält som en parameter. För att göra det root kan du använda $replaceRoot
steg, prova:
db.col.aggregate([
{
$replaceRoot: {
newRoot: { $arrayToObject: [ [ { k: "$code", v: "$item" } ] ]}
}
}
])