gpt4 book ai didi

mongodb - 如何在 mongodb 中将项目分组到对象中?

转载 作者:可可西里 更新时间:2023-11-01 10:43:08 25 4
gpt4 key购买 nike

我正在尝试使用此聚合查询在 mongodb 中执行简单的 GROUP BY/COUNT:

{
$match:{
'os':7
}
},
{
$group : {
_id:"$status",
count:{$sum:1}
}
},
{
$project:{
count:1,
status:1
}
}

它返回一个这样的数组

[{ "_id" : "ENC", "count" : 18 }
{ "_id" : "INT", "count" : 363 }
{ "_id" : "ANN", "count" : 132 }]

有没有办法使用分组字段作为键将结果投影到对象中?例如:

{
ENC:18,
INT:363,
ANN:132
}

谢谢

最佳答案

我觉得MongoDB的聚合框架没有$project可以将字段值转换为键的操作。您可以尝试使用 forEach() 转换聚合结果游标方法迭代投影字段并使用 JavaScript 的 bracket-notation 在结果对象上创建所需的最终对象:

var result = [
{ "_id" : "ENC", "count" : 18 },
{ "_id" : "INT", "count" : 363 },
{ "_id" : "ANN", "count" : 132 }
];
var obj = {};
result.forEach(function (doc){
obj[doc._id] = doc.count;
});
printjson(obj); // {ENC: 18, INT: 363, ANN: 132}

关于mongodb - 如何在 mongodb 中将项目分组到对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30019722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com