redis和mongodb数据库的基本操作

目录

一、redis基本操作

    1、 string类型数据的命令操作:    

    2、 list类型数据的命令操作:

    3、 hash类型数据的命令操作

    4、Keys相关的命令操作

二、MongoDB 基本操作作业

1. 查找练习

2.增加、更新、删除作业 :

3.使用之前的grade数据库


一、redis基本操作

作业一:string list hash结构中,每个至少完成5个命令,包含插入 修改 删除 查询,list 和hash还需要增加遍历的操作命令


    1、 string类型数据的命令操作:
    

(1) 设置键值:


    (2) 读取键值:


    (3) 数值类型自增1:


    (4) 数值类型自减1:


    (5) 查看值的长度:

    2、 list类型数据的命令操作:


    (1)对列表city插入元素:Shanghai Suzhou Hangzhou


    (2)将列表city里的头部的元素移除

 


   (3)将name列表的尾部元素移除到number列表的头部

redis和mongodb数据库的基本操作_第1张图片
    (4) 对一个已存在的列表插入新元素

 redis和mongodb数据库的基本操作_第2张图片


    (5)查看list的值长度


    3、 hash类型数据的命令操作:


     (1) 设置一个hash表,order表里包括的键值信息有:id:1,customer_name:张三

redis和mongodb数据库的基本操作_第3张图片
    (2) 创建一个hash表,表里的键值批量插入

redis和mongodb数据库的基本操作_第4张图片

 
    (3) 获取order对应的map的所有key

redis和mongodb数据库的基本操作_第5张图片
    (4) 获取order对应的map的键值数量

 
    (5) 获取order表里的id值


    


    4、Keys相关的命令操作


    (1) 查看key是否存在

 


    (2) 查找满足pattern的keys


    (3) 查看key的超时时间 

redis和mongodb数据库的基本操作_第6张图片
    (4) 遍历key

redis和mongodb数据库的基本操作_第7张图片

二、MongoDB 基本操作作业

1. 创建一个数据库 名字grade 


2. 数据库中创建一个集合名字 class


3. 集合中插入若干数据 文档格式如下
{name:'zhang',age;10,sex:'m',hobby:['a','b','c']}
hobby: draw  sing  dance  basketball football  pingpong
       computer 

方法一:

方法二:

 

 

db.class.insert([
{name:"zhang",age:10,sex:'m',hobby:['a','b','c']},
.....
])

1. 查找练习


查看班级所有人信息

db.student.find()

查看班级中年龄为8岁的学生信息

db.student.find({age:8})

查看年龄大于10岁的学生信息

db.student.find({age:{$gt:10}})

查看年龄在 4---8岁之间的学生信息 

db.student.find({age:{$get:4,$lte:8}})

找到年龄为6岁且为男生的学生

db.student.fing({age:6,sex:'男'})

找到年龄小于7岁或者大于10岁的学生

db.student.find({age{$lt:7 or $gt:10}})

找到年龄是8岁或者11岁的学生

db.student.find({age{$in:[8,9,10,11]}})

找到兴趣爱好有两项的学生

db.student.find({hobdy{$size:2})

找到兴趣爱好有draw的学生

db.student.find({hobdy:'draw'})

找到既喜欢画画又喜欢跳舞的学生

db.student.find({hobby: {$all: ["draw", "dance"]}})

统计爱好有三项的学生人数

db.student.find({hobdy{$size:3}).count()

找出本班年龄第二大的学生

db.student.find().sort({age: -1}).limit(1).skip(0)

查看学生的兴趣范围

db.class.distinct('hobby')

将学生按年龄排序找到年龄最大的三个

db.student.find().sort({age:-1}).limit(3)

删除所有 年级大于12或者小于4岁的学生

db.student.remove($or:{age{$lte:4 or $get:12}})


2.增加、更新、删除作业 :

 
使用之前的grade数据库
1. 将小红的年龄变为8岁 兴趣爱好变为 跳舞 画画

update({name: '小红'}, {$set: {age: 8, hobby: ['跳舞', '画画']}})

2. 追加小明兴趣爱好  唱歌
{$push:{hobby:'sing'}}

update({name: '小明'}, {$push: {hobby: '唱歌'}})

3. 小王兴趣爱好增加  吹牛 打篮球
{$pushAll:{hobby:['吹牛','basketball']}}

update({name: '小王'}, {$pushAll: {hobby: ['吹牛', '打篮球']}})

4. 小李增加爱好,跑步和唱歌,但是不要和以前的重复
{$addToSet:{hobby:{$each:['running','sing']}}}

update({name: '小李'}, {$addToSet: {hobby: {$each: ['跑步', '唱歌']}}})

5. 该班所有同学年龄加1
update({},{$inc:{age:1}},false,true)

update({}, {$inc: {age: 1}}, false, true)

6. 删除小明的sex属性
{$unset:{sex:0}}

update({name:'小明},{$unset: {sex: 1}})

7. 删除小李兴趣中的第一项
{$pop:{hobby:-1}}

update({name:'小红},{$pop:{hobby:-1}})

8. 将小红兴趣中的画画爱好删除
{$pull:{hobby:'draw'}}

update({name:'小红'},{$pull:{hobby:'draw'}})


3.使用之前的grade数据库


增加分数域 score:{'chinese':88,'english':78,'math':98}
1. 按照性别分组统计每组人数
aggregate({$group:{_id:'$sex',num:{$sum:1}}})

2. 按照姓名分组,过滤出有重名的同学
aggregate([{$group:{_id:'$name',num:{$sum:1}}},{$match:{num:{$gt:1}}}])

3. 统计每名男生的语文成绩
aggregate([{$match:{sex:'m'}},{$project:{_id:0,name:1,'score.chinese':1}}])

4. 将女生按照英语分数降序排列
aggregate([{$match:{sex:'w'}},{$sort:{'score.english':-1}}])

 

你可能感兴趣的:(nosql,数据库)