十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

头歌实践教学平台:大数据存储2023(十九2)

头歌实践教学平台:大数据存储2023(十九2) 十九、MongoDB 文档的高级查询操作第2关高级查询一任务描述本关任务根据编程要求完成文档查询。相关知识为了完成本关任务你需要掌握各种查询操作符的用法。$all 匹配所有假设有集合 hobbies 内容如下_idnamesexhobbies1小红女唱歌跳舞羽毛球2小明男唱歌乒乓球羽毛球3小亮男乒乓球羽毛球查询其中所有喜欢“唱歌”和“羽毛球”的人:1. db.hobbies.find({hobbies:{$all:[唱歌,羽毛球]})查询结果如图所示图 1• $all 会查询满足方括号中所有条件的文档如果只有其中一项满足是不会被查询出来的。$exists 判断字段是否存在在集合 hobbies 中更新文档1. db.hobbies.save({_id:1,name:小红,age:18,sex:女,hobbies:[唱歌,跳舞,羽毛球]}) #添加小红年龄18• 查询 hobbies 集合中存在 age 字段的文档如图 2 所示图 2• hobbies 集合中不存在 age 字段的文档如图 3 所示图 3$mod 取模运算在集合 hobbies 中更新文档1. db.hobbies.update({_id:2},{$set:{age:20}}) #添加小明年龄202.3. db.hobbies.update({_id:3},{$set:{age:22}}) #添加小亮年龄22查询 age 取模等于的文档1. db.hobbies.find({age:{$mod:[7,4]}})查询结果如如图所示图 4$in 包含查询 age 或 age 的文档 :1. db.hobbies.find({age:{$in:[17,20]}})查询结果如图所示图 5$nin 不包含查询 age !且 age !的文档1. db.hobbies.find({age:{$nin:[17,20]}})查询结果如图所示图 6$size 数组元素个数可以查询特定长度的数组比如 hobbies 这一字段查询有两个爱好的文档1. db.hobbies.find({hobbies:{$size:2}})查询结果如图所示图 7查询结果排序查询结果排序语法如下1. db.collection.find().sort({_id:1}) #将查询结果按照_id升序排序2.3. db.collection.find().sort({_id:-1}) #将查询结果按照_id降序排序编程要求现有 person.json 文件内容如下_idnameagesexhobbies1杨璐19女唱歌跳舞2李建学20男唱歌篮球…………………………在命令行进行操作• 将 /home/example/person.json 文件导入到数据库 mydb2 中的 test 集合中。在右侧代码行 Begin-End 中编辑• 执行查询命令查找所有喜欢唱歌和跳舞的人的信息并按照 _id 升序排序• 执行查询命令查找所有喜欢羽毛球和跳舞的人的信息并按照 _id 升序排序• 执行查询命令查找有个爱好的人的信息并按照 _id 升序排序• 执行查询命令查找文档中存在 hobbies 字段的人的信息并按照 _id 升序排序• 执行查询命令查找岁和岁的人的信息并按照 _id 升序排序• 执行查询命令查找不是岁的人的信息并按照 _id 升序排序• 执行查询命令查找 age 取模等于的人的信息并按照 _id 升序排序。注意上述操作共有七条命令每条命令以 号隔开由于测试需要请在$ 前加 转义符即使用 \$平时在命令窗口练习不需要加 不要使用双引号改用 单引号。测试说明操作完之后点击评测我会对你的操作进行测试如果操作正确我会输出如 测试集所示的结果。开始你的任务吧祝你成功## 代码行部分#********* Begin *********#echo db.test.find({hobbies:{\$all:[唱歌, 跳舞]}}).sort({_id:1});db.test.find({hobbies:{\$all:[羽毛球, 跳舞]}}).sort({_id:1});db.test.find({hobbies:{\$size:3}}).sort({_id:1});db.test.find({hobbies:{\$exists:true}}).sort({_id:1});db.test.find({age:{\$in:[19,23]}}).sort({_id:1});db.test.find({age:{\$nin:[20]}}).sort({_id:1});db.test.find({age:{\$mod:[9,2]}}).sort({_id:1});#********* End *********#有任何问题都可以随时关注私信
返回列表