关于mongodb中分组查询?
我有三个集合,学生集合,班级集合,课程集合。。只有学生集合里面包含了班级的id以及课程的id,其他没有任何关联,,现在我想要查询出每个班级选每门课程的数量,应该要如何写查询语句。谢谢
4 回复
db.student.aggregate([
{
$group:{
_id:{classid:"$classid",lessonid:"$lessonid"},
num:{$sum:1}
}
}
])
来自酷炫的 CNodeMD
好的,谢谢哈,,那有没有方法,再次对这个group得到的集合用populate?
db.student.aggregate([
{
$group:{
_id:{classid:"$classid",lessonid:"$lessonid"},
num:{$sum:1}
}
}, {
$lookup:{
from:"class",//班级集合名称
localField:"_id.classid",
foreignField:"_id",
as:"classinfo"//将班级信息放入classinfo中
}
},
{
$lookup:{
from:"lesson",
localField:"_id.lessonid",
foreignField:"_id",
as:"lessoninfo"//将课程信息放入lessoninfo中
}
}
])