gpt4 book ai didi

mongodb - 在mongodb中计算百分比

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

我的数据库看起来像:

{
{user:bob,votes:63}
{user:jack,votes:27}
{user:john,votes:10}
}

我可以得到总票数,但我不知道如何让每个人的票数占总票数的百分比。例如; jack 将获得 27% 的选票。

[ 
{
'$group': {
'_id': '',
'totalofvotes': {'$sum': '$votes'},
'%votesperperson': {'$multiply':[{'$divide':["votes",{'$sum': '$votes'}]},100]}
},
}
]

最佳答案

你不能在单个小组赛阶段做到这一点,因为小组赛因为有总和值(value)而被终止。相反,使用以下查询:

db['test'].aggregate(
[
// Stage 1
{
$group: {
_id:null,
sum:{$sum:"$votes"},
users:{$push:{user:"$user", votes:"$votes"}}
}
},
// Stage 2
{
$unwind: {
path : "$users",

}
},
// Stage 3
{
$project: {user:"$users.user",
votes:"$users.votes",
sum:"$sum",
"percent": {$multiply:[{$divide:["$users.votes","$sum"]},100]}
}
},
]
);

会输出

{ 
"_id" : null,
"user" : "bob",
"votes" : NumberInt(63),
"sum" : NumberInt(100),
"percent" : 63.0
}
{
"_id" : null,
"user" : "jack",
"votes" : NumberInt(27),
"sum" : NumberInt(100),
"percent" : 27.0
}
{
"_id" : null,
"user" : "john",
"votes" : NumberInt(10),
"sum" : NumberInt(100),
"percent" : 10.0
}

关于mongodb - 在mongodb中计算百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52514384/

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