【发布时间】:2018-07-18 14:46:01
【问题描述】:
我正在尝试查找总出现次数及其占总出现次数的百分比
例如:
我们有一个具有以下集合结构的用户表
user : [
{
email : A@abc.com,
eyeColor: blue,
},
{
email : B@abc.com,
eyeColor: brown,
},
{
email : C@abc.com,
eyeColor: blue,
},
{
email : D@abc.com,
eyeColor: red,
},
{
email : E@abc.com,
eyeColor: blue,
}
]
现在我可以使用聚合查询获得眼睛颜色的总出现次数
db.users.aggregate([$group : [_id: “$eyeColor”,total : {$sum : 1}]
])
我需要像下面这样的输出
[{ "_id" : blue, "count" : 3 },{ "_id" : red, "count" : 1 },{ "_id" : brown, "count" : 1 }]
现在我想要得到的是,我需要使用公式(occurrence / total_occurrence) * 100 为上述输出中的每个对象添加一个名为 percentOccupied 的字段(总出现次数中有多少%的眼睛颜色)
例如考虑总产出 我们有 3 种蓝色,所以我需要像下面这样的东西
[{ "_id" : blue, "count" : 3, percentage: 60 },{ "_id" : red, "count" : 1, percentage: 20 },{ "_id" : brown, "count" : 1, percentage: 20 }, total : 5]
【问题讨论】:
标签: mongodb mongoose aggregate