SQL向mongodb查询与group by的和



我是一个初学者,没有SQL数据库,我如何将以下SQL查询转换为Mongodb查询?

select e.empno,sum(f.points)
from employee e, assignment a, finalreport f 
where e.empno = a.empno  and a.assid = f.assid
group by e.empno

我想要得到分配了任务的员工的总得分。有三个表employee, assignment和finalreport。积分在期末报告表中。

您可以通过几种不同的方式做到这一点,我将展示使用$lookup的最简单方法,它相当于sqljoin(或者更确切地说是"左外连接")。

db.employees.aggregate([
{
"$lookup": {
"from": "assignment",
"localField": "empno",
"foreignField": "empno",
"as": "assignments"
}
},
{
"$lookup": {
"from": "finalreport",
"localField": "assignments.assid",
"foreignField": "assid",
"as": "reports"
}
},
{
$project: {
points: {
$sum: {
$map: {
input: "$reports",
in: "$$this.points"
}
}
},
empno: 1
}
}
])

Mongo操场

相关内容

  • 没有找到相关文章

最新更新