MongoDB是一种非关系型数据库,它可以存储灵活的文档结构,其中可以包含数组、对象等复杂类型。在MongoDB中,我们可以使用聚合框架来对文档进行各种转换和分析,实现复杂的查询需求。本文将介绍如何使用聚合框架查询嵌套数组,即数组中的数组。
假设我们有一个集合students,存储了学生的姓名、年龄和选修课程信息。选修课程是一个数组,每个元素是一个对象,包含了课程名称和成绩。文档结构如下:
现在,我们想要查询以下几个问题:
1.哪些学生选修了Math课程?
2.哪些学生的Math成绩高于平均分?
3.哪些学生的所有课程成绩都高于80分?
为了回答这些问题,我们需要使用聚合框架中的一些数组操作符,如$elemMatch、$filter、$map、$reduce等。下面我们逐一介绍这些操作符的用法和示例。