给你举个例子,你看看:
use test;
// 以下是测试数据,grades里面为语文、数学、外语三门成绩
db.temps.insertMany([
{'stu_no': 1001, grades:[99, 98, 34]},
{'stu_no': 1002, grades:[100, 100, 100]},
{'stu_no': 1003, grades:[78, 43, 55]},
{'stu_no': 1004, grades:[56, 45, 100]},
{'stu_no': 1005, grades:[100, 100, 56]},
{'stu_no': 1006, grades:[99, 89, 45]},
{'stu_no': 1007, grades:[67, 100, 100]},
{'stu_no': 1008, grades:[45, 98, 100]},
{'stu_no': 1009, grades:[100, 100, 100]},
{'stu_no': 1010, grades:[99, 98, 100]},
]);
// 满足数组中所有条件:查询有两门成绩分别为100分和98分的记录
db.temps.find({grades: {$all: [100, 98]}});
// 返回结果
//{'stu_no': 1008, grades:[45, 98, 100]},
//{'stu_no': 1010, grades:[99, 98, 100]},
// 满足至少一个条件 : 至少有一门成绩在60分以下
db.temps.find({grades: {$elemMatch:{$lt: 60}}});