MySQL07

需求一:string list hash结构中,每个至少完成5个命令,包含插入 修改 删除 查询,list 和hash还需要增加遍历的操作命令
1、 string类型数据的命令操作:
(1) 设置键值:set one 1
(2) 读取键值:get one
(3) 数值类型自增1:incr one
(4) 数值类型自减1:decr one
(5) 查看值的长度:strlen one
2、 list类型数据的命令操作:
(1)对列表city插入元素:Shanghai Suzhou Hangzhoulpush city shanghai suzhou huangzhou
在这里插入图片描述
(2)将列表city里的头部的元素移除
(3)将name列表的尾部元素移除到number列表的头部
(4) 对一个已存在的列表插入新元素
(5)查看list的值长度
3、 hash类型数据的命令操作:
(1) 设置一个hash表,order表里包括的键值信息有:id:1,customer_name:张三
在这里插入图片描述
(2) 创建一个hash表,表里的键值批量插入
(3) 获取order对应的map的所有key
(4) 获取order对应的map的键值数量
(5) 获取order表里的id值
4、Keys相关的命令操作
(1) 查看key是否存在
(2) 查找满足pattern的keys
(3) 查看key的超时时间
(4) 遍历key

需求二:举例说明list和hash的应用场景,每个至少一个场景

mongodb作业

  1. 创建一个数据库 名字grade use grade
  2. 数据库中创建一个集合名字 classdb.createCollection("class");
  3. 集合中插入若干数据 文档格式如下
    {name:‘zhang’,age;10,sex:‘m’,hobby:[‘a’,‘b’,‘c’]}
    hobby: draw sing dance basketball football pingpong computer
{name:‘zhang’,age;10,sex:‘m’,hobby:[‘a’,‘b’,‘c’]}
hobby: draw sing dance basketball football pingpong computer
  1. 查找
    查看班级所有人信息db.class.find();
    查看班级中年龄为8岁的学生信息db.class.find({age:8})
    查看年龄大于10岁的学生信息db.class.find({age:{$gt:10}})
    查看年龄在 4—8岁之间的学生信息 db.class.find({age:{$gte:4,$lte:8}})
    找到年龄为6岁且为男生的学生db.class.find({age:6,sex:'m'})
    找到年龄小于7岁或者大于10岁的学生db.class.find({$or:[{age:{$lt:7}},{age:{$gt:10}}]})
    找到年龄是8岁或者11岁的学生db.class.find({$or:[{age:8},{age:11}]})
    找到兴趣爱好有两项的学生db.class.find({$where:"this.hobby.length == 2"})
    找到兴趣爱好有draw的学生db.class.find({hobby:'draw'})
    找到既喜欢画画又喜欢跳舞的学生db.class.find({hobby:{$all:['dance','draw']}})
    统计爱好有三项的学生人数db.class.find({$where:"this.hobby.length == 3"})
    找出本班年龄第二大的学生db.class.find({}).sort({age:-1}).skip(1).limit(1)
    查看学生的兴趣范围db.class.distinct('hobby')
    将学生按年龄排序找到年龄最大的三个db.class.find({},{_id:0}).sort({age:-1}).limit(3)
    删除所有 年级大于12或者小于4岁的学生db.class.deleteMany({$or:[{age:{$gt:12}},{age:{$lt:4}}]})

增加、更新、删除、统计

  1. 将小红的年龄变为8岁 兴趣爱好变为 跳舞 画画db.class.update({'name':'小红'},{$set:{'age':8,'hobby':['dance','draw']}})
  2. 追加小明兴趣爱好 唱歌db.class.update({'name':'小明'},{$push:{'hobby':'sing'}})
  3. 小王兴趣爱好增加 吹牛 打篮球db.class.update({'name':'小王'},{$push:{'hobby':{$each:['basketball','吹牛']}}})
  4. 小李增加爱好,跑步和唱歌,但是不要和以前的重复db.class.update({'name':'小李'},{$addToSet:{hobby:{$each:['running','sing']}}})
  5. 该班所有同学年龄加1db.class.update({},{$inc:{age:1}},false,true)
  6. 删除小明的sex属性db.class.update({'name':'小明'},{$unset:{sex:0}})
  7. 删除小李兴趣中的第一项db.class.update({'name':'小李'},{$pop:{hobby:-1}})
  8. 将小红兴趣中的画画爱好删除db.class.update({'name':'小红'},{$pull:{hobby:'draw'}})

增加分数域 score:{‘chinese’:88,‘english’:78,‘math’:98}

  1. 按照性别分组统计每组人数db.class.aggregate([ { $group: { _id: "$sex", count: { $sum: 1 } } }])
  2. 按照姓名分组,过滤出有重名的同学db.class.aggregate([{$group:{_id:'$name',num:{$sum:1}}},{$match:{num:{$gt:1}}}])
  3. 统计每名男生的语文成绩db.class.aggregate([{$match:{sex:'m'}},{$project:{_id:0,name:1,'score.chinese':1}}])
  4. 将女生按照英语分数降序排列db.class.aggregate([{$match:{sex:'f'}},{$sort:{'score.english':-1}}])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值