)
十九、MongoDB 文档的高级查询操作第3关高级查询二任务描述本关任务根据编程要求完成文档查询。相关知识为了完成本关任务你需要掌握各种查询操作符的用法。假设数据库有集合 student 如下_id name age sex major1 王晓丽 19 女 计算机2 张明 21 男 计算机3 秋雅 20 女 播音主持4 张欣欣 18 女 表演$or 条件之间的或查询$or 表示多个查询条件之间是或的关系比如查询性别 sex 为 男 或年龄 age 为18的文档信息db.student.find({$or:[{sex:男},{age:18}]})查询结果如图1所示图 1$and 条件之间的且查询$and表示多个查询条件之间是且的关系比如查询年龄 age 大于18且小于2118 age 21的信息db.student.find({$and:[{age:{$gt:18}},{age:{$lt:21}}]})查询结果如图2所示图 2$not 条件取反查询$not 用来执行取反操作比如查询年龄 age 大于等于20岁然后进行取反即查询年龄小于20岁的文档db.student.find({age:{$not:{$gte:20}}})查询结果如图3所示图 3正则表达式匹配查询查询不符合major计*开头文档db.student.find({major:{$not:/^计.*/}})查询结果如图4所示图 4count() 返回结果集总数比如返回上一步正则查询到的结果集有几条db.student.find({major:{$not:/^计.*/}}).count()查询结果如图5所示图 5编程要求现有 person.json 文件内容如下_id name age sex hobbies1 杨璐 19 女 唱歌跳舞2 李建学 20 男 唱歌篮球…… …… …… …… ……在右侧命令行进行操作将 /home/example/person.json 文件导入到数据库 mydb3 中的 test 集合中。在右侧代码行 Begin-End 中编辑如下执行查询命令查找年龄为20岁男生的信息并按照_id升序排序执行查询命令查找年龄为20岁或者性别为男生的信息并按照_id升序排序执行查询命令查找name 韩*开头的人的信息并按照_id升序排序执行查询命令查找年龄19 age 22的人的信息并按照_id升序排序执行查询命令查找年龄age 19或age 21的信息并按照_id升序排序执行查询命令查找name ! 韩*开头的人的信息并按照_id升序排序执行查询命令查找查找name ! 韩*开头的人的个数执行查询命令查找年龄19 age 22的人的个数。注意上述操作共有八条命令每条命令以号隔开由于测试需要请在$前加转义符即使用\$平时在命令窗口练习不需要加不要使用双引号改用 单引号。测试说明操作完之后点击评测我会对你的操作进行测试如果操作正确我会输出如 测试集1所示的结果。开始你的任务吧祝你成功## 代码行部分#********* Begin *********#echo db.test.find({\$and:[{age:20}, {sex:男}]}).sort({_id:1});db.test.find({\$or:[{age:20}, {sex:男}]}).sort({_id:1});db.test.find({name:/^韩.*/}).sort({_id:1});db.test.find({\$and:[{age:{\$gte:19}}, {age:{\$lt:22}}]}).sort({_id:1});db.test.find({\$or:[{age:{\$lt:19}}, {age:{\$gt:21}}]}).sort({_id:1});db.test.find({name:{\$not:/^韩.*/}}).sort({_id:1});db.test.find({name:{\$not:/^韩.*/}}).count();db.test.find({\$and:[{age:{\$gte:19}}, {age:{\$lt:22}}]}).count();#********* End *********#有任何问题都可以随时关注私信