nosql——Redis,Mongodb

news/2025/2/5 19:58:22/

目录

一、redis

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

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

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

4、Keys相关的命令操作

二、mongodb 

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

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

3. 集合中插入若干数据 文档格式如下

4. 查找

5. 增加、更新、删除、统计

增加分数域

一、redis

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

    (1) 设置键值:
    (2) 读取键值:
    (3) 数值类型自增1:
    (4) 数值类型自减1:
    (5) 查看值的长度:

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

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

    (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 

二、mongodb 

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

use grade

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

db.createCollection("class")

3. 集合中插入若干数据 文档格式如下

{name:'zhang',age;10,sex:'m',hobby:['a','b','c']}
hobby: draw  sing  dance  basketball football  pingpong  computer 

 db.class.insert([{"name":"zhangsan","age":10,"sex":"m","hobby":["draw","sing"]},{"name":"lisi","age":12,"sex":"m","hobby":["dance","computer"]},{"name":"wangwu","age":11,"sex":"m","hobby":["draw","football"]},{"name":"zhaofang","age":11,"sex":"f","hobby":["draw","sing","dance"]},{"name":"lily","age":10,"sex":"f","hobby":["sing","dance"]},{"name":"haha","age":8,"sex":"m","hobby":["pingpong","football"]},{"name":"grace","age":7,"sex":"f","hobby":["draw","football","computer"]},{"name":"bob","age":13,"sex":"m","hobby":["football","computer"]}])

4. 查找

查看班级所有人信息

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}}).pretty()


找到年龄为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({age:{$in:[8,11]}})


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

db.class.find({hobby:{$size:2}})


找到兴趣爱好有draw的学生

db.class.find({hobby:"draw"})


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

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


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

db.class.find({hobby:{$size:3}}).count()


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

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


查看学生的兴趣范围

db.class.distinct('hobby')


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

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


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

db.class.remove({$or:[{age:{$gt:12}},{age:{$lt:4}}]})

 

5. 增加、更新、删除、统计

1. 将小红的年龄变为8岁 兴趣爱好变为 跳舞 画画

db.class.updateOne({name:"小红"},{$set:{age:8, hobby:["draw","dance"]}})


2. 追加小明兴趣爱好  唱歌

db.class.updateOne({name:"小明"},{$push:{hobby:'sing'}})


3. 小王兴趣爱好增加  吹牛 打篮球

db.class.updateOne({name:"小明"},{$push:{hobby:["吹牛","basketball"]}})


4. 小李增加爱好,跑步和唱歌,但是不要和以前的重复

db.class.updateOne({name:"小明"},{$addToSet:{hobby:{$each:["run","sing"]}}})


5. 该班所有同学年龄加1

db.class.updateMany({},{$inc:{age:1}})


6. 删除小明的sex属性

db.class.updateOne({},{$unset:{sex:""}})


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',num:{$sum:1}}})

2. 按照姓名分组,过滤出有重名的同学

db.class.aggregate([{$group:{_id:'$name',num:{$sum:1}}},{$match:{num:{$gt:1}}}])

3. 统计每名男生的语文成绩

db.class.aggregate([{$match:{sex:"男"}},{$project:{_id:0,name:1,'score.chinese':1}}])

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

db.class3.aggregate([{$match:{sex:"女"}},{$sort:{'score.english':-1}}])

http://www.ppmy.cn/news/927534.html

相关文章

Linux内不能使用Tab键进行命令补全!!!原因竟然是……

很多初次学习LInux的小伙伴私信,为什么无法使用tab键补全命令 有可能在安装的时候选择的是最小化mini安装,像CentOS7最小化安装是默认没有命令补全的,需要自行安装。 [rootlocalhost ~]# yum install -y bash-completion #下载命令补全工具 […

搭建LNMP构建动态网站wordpress

LNMP代表的就是:Linux系统下NginxMySQLPHP这种网站服务器架构。 利用四种开源免费的软件来构架一个优秀的网站服务体系。 本机使用的是这里采用virtualboxcentos9实验环境 1.在实验前先关闭实验环境的防火墙以及nginx。 #systemctl stop firewalld (关闭防火墙) #…

好心情:这4种营养素能增强抗抑郁药的疗效!不知道的人亏大了

抑郁症有多痛苦,只有经历过的人才懂~ 吃再美味的东西,都味同嚼蜡; 累的感觉永无止境,睡再久也于事无补; 自我攻击的想法会不停在脑海闪过:我真的太没用了,好事不会发生在我身上...... 更烦的…

Linux——MySQL安装的几种方式

文章目录 一、 yum在线安装二、 本地rpm安装三、 源码安装 一、 yum在线安装 1、 下载并安装MySQL官方的 Yum Repository [rootlocalhost ~]# dnf install https://repo.mysql.com//mysql80-community-release-el9-1.noarch.rpm 2、 直接安装mysql-server [rootlocalhost ~…

第三周学习作业

第三周学习作业 1. 尝试基于gcc命令说明 c语言编译过程。2. 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt根据linux派系来进行区分大致分为debian和redhat两类程序包中包含的内容包括&…

AlphaFold2无痛安装教程(超级详细)

文章目录 介绍环境安装CMAKE安装hmmer安装HHsuite安装Kalign安装OpenMM安装PDBfixer安装Python依赖包安装 AlphaFold安装AlphaFold 报错处理一键安装后续 介绍 AlphaFlod2作为最近在生物领域非常的火的AI,给生物医药领域带来了划时代的影响,许多研究者都…

公网搭建

最近有小伙伴私信我怎样架设到网络上,在此回复(本文仅供学习使用) 目录 一、搭建DNF台服之服务器篇 二、搭建DNF台服之数据库 三、搭建DNF台服之配置客户端 四、搭建DNF台服之无限疲劳 五、搭建DNF台服之链接数据库 六、搭建DNF台服之开…

01.先让Kubernetes跑起来

1、在所有节点上进行初始化配置: ①、修改主机名(Master、node1、node2)、修改hosts表、关闭selinux、清空防火墙、关闭firewalld服务(或者放行相应的端口);永久关闭swap,配置离线yum仓库&…