redis和mongoDB小练习

本文详细列举了Redis中的String、List和Hash数据结构的常用命令,包括插入、修改、删除、查询和遍历等操作。同时,通过MongoDB创建数据库和集合,展示了对学生信息进行各种查询、更新、删除和统计的方法,如按年龄、爱好等条件筛选。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String list hash结构中,每个至少完成5个命令,包含插入 修改 删除 查询,list 和hash还需要增加遍历的操作命令
1、 string类型数据的命令操作:
(1) 设置键值:
set name hello
(2) 读取键值:
get name
(3) 数值类型自增1:
#创建name1:set name1 4
incr name1
(4) 数值类型自减1:
desc name1
(5) 查看值的长度:
strlen name
2、 list类型数据的命令操作:
(1)对列表city插入元素:Shanghai Suzhou Hangzhou
lpush city shanghai hangzhou guangzhou

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

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

lpush number 1 2 3 4 5

(4) 对一个已存在的列表插入新元素
rpush number 6

(5)查看list的值长度
llen number
3、 hash类型数据的命令操作:
(1) 设置一个hash表,order表里包括的键值信息有:id:1,customer_name:张三
hmset order id 1 costomer_name ‘张三’

(2) 创建一个hash表,表里的键值批量插入

(3) 获取order对应的map的所有key
hkeys map
(4) 获取order对应的map的键值数量
hlen map

(5) 获取order表里的id值
hmget order id
4、Keys相关的命令操作
(1)查看key是否存在
exists order

(2)查找满足pattern的keys
SET runoob1 redis
SET runoob2 xixixi
SET runoob3 mysql
keys run*

(3)查看key的超时时间
set mykey “hello”
expire mykey 100
ttl mykey

(4)遍历key
keys mykey
案例二 举例说明list和hash的应用场景,每个至少一个场景

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

use grade

  1. 数据库中创建一个集合名字 class
    db.createCollection(“class”)

  2. 集合中插入若干数据 文档格式如下
    {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:[‘draw’,‘swing’,‘dance’]},
    {name:“lssi”,age:8,sex:‘w’,hobby:[‘swing’,‘dance’]},
    {name:“wangwu”,age:11,sex:‘m’,hobby:[‘draw’,‘swing’,‘basketball’]},
    {name:“liuzi”,age:6,sex:‘w’,hobby:[‘draw’,‘swing’,’ pingpong’]},
    {name:“qizi”,age:11,sex:‘m’,hobby:[‘draw’,’ pingpong’]},
    {name:“baba”,age:4,sex:‘m’,hobby:[‘computer’,‘swing’,’ pingpong’]}
    ])

#小红
db.class.insert({name:“xiaohong”,age:8,sex:‘m’,hobby:[‘computer’,‘swing’,’ pingpong’]});

#小明
db.class.insert({name:“xiaoming”,age:8,sex:‘m’,hobby:[‘computer’]});

#小王
db.class.insert({name:“xiaowang”,age:8,sex:‘m’,hobby:[‘swing’,’ pingpong’]});

#小李
db.class.insert({name:“xiaoli”,age:11,sex:‘m’,hobby:[‘swing’,’ pingpong’]});021

查找
查看班级所有人信息
db.class.find()

查看班级中年龄为8岁的学生信息
db.class.find({age:8})

查看年龄大于10岁的学生信息
db.class.find({age:{$gt: 10}})

查看年龄在 4—8岁之间的学生信息
db.class.find({age: { g t : 4 , gt:4, gt:4,lt:8}})

找到年龄为6岁且为男生的学生
db.class.find({age:6},{sex:‘m’})

找到年龄小于7岁或者大于10岁的学生
db.class.find({KaTeX parse error: Expected '}', got 'EOF' at end of input: or:[{age:{gt:10}},{age:{$lt:7}}]})

找到年龄是8岁或者11岁的学生
db.class.find({$or:[{age:8},{age:11}]})

找到兴趣爱好有两项的学生
db.class.find({hobby:{$size:2}})

找到兴趣爱好有draw的学生
db.class.find({hibby:“draw”})

找到既喜欢画画又喜欢跳舞的学生
find({hobby:{$all: [“draw”,“dance”]}})

统计爱好有三项的学生人数
find({hobby:{$size:3}}).count()

找出本班年龄第二大的学生
find().sort({age:-1}.skip(1)).limit(1)

查看学生的兴趣范围
db.class.distinct(‘hobby’)

将学生按年龄排序找到年龄最大的三个
find().sort({age:-1}).limit(3)

删除所有 年级大于12或者小于4岁的学生
remove({&or: [{age: {KaTeX parse error: Expected 'EOF', got '}' at position 6: gt:12}̲},{age:{lt:4}}]})
增加、更新、删除、统计
将小红的年龄变为8岁 兴趣爱好变为 跳舞 画画
db.class.update({name:“xiaohong”},{$set:{age:8,hobby:[‘dance’,‘draw’]}})

追加小明兴趣爱好 唱歌
db.class.update({name:“xiaoming”},{$push:{hobby:‘sing’}})

小王兴趣爱好增加 吹牛 打篮球
db.class.update({name:“xiaowang”},{$pushAll:{hobby:[‘吹牛’,‘basketball’]}})

5.4 小李增加爱好,跑步和唱歌,但是不要和以前的重复
db.class.update({name:“xiaoli”},{KaTeX parse error: Expected '}', got 'EOF' at end of input: …dToSet:{hobby:{each:[‘running’,‘sing’]}}})

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

删除小明的sex属性
db.class.update({name:“xiaoming”},{$unset:{sex:0}})

删除小李兴趣中的第一项
db.class.update({name:“xiaoli”},{$pop:{hobby:-1}})

将小红兴趣中的画画爱好删除
db.class.update({name:“xiaohong”},{KaTeX parse error: Expected 'EOF', got '}' at position 20: …:{hobby:'draw'}}̲) 增加分数域 score:{…group:{_id:‘KaTeX parse error: Expected '}', got 'EOF' at end of input: sex',num:{sum:1}}})
按照姓名分组,过滤出有重名的同学
db.class.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{_id:'name’,num:{KaTeX parse error: Expected 'EOF', got '}' at position 6: sum:1}̲}},{match:{num:{KaTeX parse error: Expected 'EOF', got '}' at position 5: gt:1}̲}}]) 6统计每名男生的语文…match:{sex:‘m’}},{$project:{_id:0,name:1,‘score.chinese’:1}}])

将女生按照英语分数降序排列

db.class.aggregate([{KaTeX parse error: Expected 'EOF', got '}' at position 16: match:{sex:'w'}}̲,{sort:{‘score.english’:-1}}])
————————————————
版权声明:本文为CSDN博主「Suexiao7」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Suexiao7/article/details/131777776

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值