使用MongoDB聚合查询,如何将一系列文档转换为单个文档。该数组可以包含N个文档。
之前
{
"_id": "10217941",
"data": [
{
"count": 2,
"score": "0.5"
},
{
"count": 6,
"score": "0.3"
},
{
"count": 5,
"score": "0.8"
}
]
}
之后
"_id": "10217941",
"0.3": 6,
"0.5": 2,
"0.8": 5
答案 0 :(得分:1)
尝试一下:
db.collection.aggregate([
{
"$addFields": {
"data": {
"$arrayToObject": {
"$map": {
"input": "$data",
"as": "item",
"in": {
"k": "$$item.score",
"v": "$$item.count"
}
}
}
}
}
},
{
"$addFields": {
"data._id": "$_id"
}
},
{
"$replaceRoot": {
"newRoot": "$data"
}
}
]);