我想从 mongodb 文档中计算员工积分。
我在员工积分收藏中的文件如下
[
{
"EmployeeID": "Cust0001",
"Point": 1,
},
{
"EmployeeID": "Cust0002",
"Point": 2,
},
{
"EmployeeID": "Cust0003",
"Point": 1,
},
{
"EmployeeID": "Cust0001",
"Point": 5,
},
{
"EmployeeID": "Cust0001",
"Point": 2,
}
]
预期结果
[
{
"EmployeeID": "Cust0001",
"Total_Points": 8
},
{
"EmployeeID": "Cust0002",
"Total_Points": 2
},
{
"EmployeeID": "Cust0003",
"Total_Points": 1
}
]
从 mongodb 获取总分输出的最佳和最优化方法是什么。
我在我的项目中使用 mongoose mongodb 连接。
我可以使用 for 循环操作数据,但它似乎相当低效。
提前致谢。
欢迎提出意见。
最佳答案
您需要使用 $sum
在这里两次......一次作为$group
的“累加器”阶段和一个用于求和 Points
db.collection.aggregate([
{ "$group": {
"_id": "$EmployeeID",
"Point": {
"$sum": {
"$sum": "$Point"
}
}
}},
{ "$project": {
"EmployeeID": "$_id",
"Point": "$Point",
"_id": 0
}}
])
输出
[
{
"EmployeeID": "Cust0003",
"Point": 1
},
{
"EmployeeID": "Cust0002",
"Point": 2
},
{
"EmployeeID": "Cust0001",
"Point": 8
}
]
查一下here
关于javascript - 如何使用mongoose计算mongodb集合文档中的字段总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50961914/