关于mongodb中分组查询?
发布于 6 年前 作者 LiChangyi 2567 次浏览 来自 问答

我有三个集合,学生集合,班级集合,课程集合。。只有学生集合里面包含了班级的id以及课程的id,其他没有任何关联,,现在我想要查询出每个班级选每门课程的数量,应该要如何写查询语句。谢谢

4 回复
db.student.aggregate([
  {
	$group:{
	  _id:{classid:"$classid",lessonid:"$lessonid"},
	  num:{$sum:1}
	}
  }
])

来自酷炫的 CNodeMD

好的,谢谢哈,,那有没有方法,再次对这个group得到的集合用populate?

@LiChangyi

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中
		}
	}
])

@lovegnep 好的,真的非常感谢你

来自酷炫的 CNodeMD

回到顶部