noSQL语句练习

Redis练习题

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

 1、 string类型数据的命令操作:
    (1) 设置键值:
        
127.0.0.1:6379> set key value EX 100
OK
SET key value EX 秒数 / PX 毫秒数 NX/XX127.0.0.1:6379> SETNX key value
0127.0.0.1:6379> SETNX key1 value
1 127.0.0.1:6379> SETEX key2 100 value
OK
SETEX key 秒数 value127.0.0.1:6379> PSETEX KEY3 100 VALUE
OK
PSETEX key 毫秒数 value127.0.0.1:6379> TTL KEY4
-2

    (2) 读取键值:
        
127.0.0.1:6379> SETEX KEYA 10 "HELLO WORLD"
OK
127.0.0.1:6379> GET KEYA
HELLO WORLD

    (3) 数值类型自增1:
127.0.0.1:6379> set mykey 7
OK
127.0.0.1:6379> incr mykey
8

    (4) 数值类型自减1:
127.0.0.1:6379> set mykey 20
OK
127.0.0.1:6379> decr mykey
19

    (5) 查看值的长度:
127.0.0.1:6379> set key "this is my country"
OK
127.0.0.1:6379> strlen key
18
2、 list类型数据的命令操作:
    (1)对列表city插入元素:Shanghai Suzhou Hangzhou
        
127.0.0.1:6379> lrange city 0 8
Hangzhou
Suzhou
Shanghai
tianjing
xian
chengdu
Chongqing

    (2)将列表city里的头部的元素移除
127.0.0.1:6379> lpop city
Hangzhou
127.0.0.1:6379> lrange city 0 10
Suzhou
Shanghai
tianjing
xian
chengdu
chongqing
127.0.0.1:6379> 

    (3)将name列表的尾部元素移除到number列表的头部
127.0.0.1:6379> lrange name 0 6
Mikky
Coco
Simmons
Tom
Susan
127.0.0.1:6379> rpoplpush name number
Susan
127.0.0.1:6379> lrange name 0 -1
Mikky
Coco
Simmons
Tom
127.0.0.1:6379> lrange number 0 -1
Susan
5
4
3
2
1

    (4) 对一个已存在的列表插入新元素
127.0.0.1:6379> lrange name 0 6
Mikky
Coco
Simmons
Tom127.0.0.1:6379> lpushx name Alice Brown
6127.0.0.1:6379> lrange name 0 7
Brown
Alice
Mikky
Coco
Simmons
Tom

    (5)查看list的值长度
127.0.0.1:6379> llen name
6
127.0.0.1:6379> llen number
6

 3、 hash类型数据的命令操作:
     (1) 设置一个hash表,order表里包括的键值信息有:id:1,customer_name:张三
127.0.0.1:6379> hset order id "1" (integer) 1127.0.0.1:6379> hset order customer_name "张三"(integer) 1

    (2) 创建一个hash表,表里的键值批量插入
 127.0.0.1:6379> hmset mykey a 1 b 2 c 3

    (3) 获取order对应的map的所有key
    127.0.0.1:6379> hkeys order

    (4) 获取order对应的map的键值数量
127.0.0.1:6379> hlen order

    (5) 获取order表里的id值
    127.0.0.1:6379> hget order id"1"

    
  4、Keys相关的命令操作
    (1) 查看key是否存在
127.0.0.1:6379> set name a1
OK
127.0.0.1:6379> set name b1
OK
127.0.0.1:6379> exists a1
(integer) 0
127.0.0.1:6379> exists b2
(integer) 0

    (2) 查找满足pattern的keys
127.0.0.1:6379> keys pattern
(empty array)

    (3) 查看key的超时时间
127.0.0.1:6379> ttl name
(integer) -1

    (4) 遍历key
127.0.0.1:6379> scan 0
1) "0"
2) 1) "number"2) "order"3) "mykey"4) "test1"5) "city"6) "name"

MangoDB练习题

1. 创建一个数据库 名字grade 
MongoDB Enterprise > use grade
switched to db grade

2. 数据库中创建一个集合名字 class
MongoDB Enterprise > db.createCollection("class");
{ "ok" : 1 }

3. 集合中插入若干数据 文档格式如下
{name:'zhang',age;10,sex:'m',hobby:['a','b','c']}
hobby: draw  sing  dance  basketball football  pingpong  computer 
MongoDB Enterprise > db.class.insert({name:'xiaozhang',age:6,sex:'m',hobby:['draw','pingpong']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaoxiang',age:9,sex:'m',hobby:['draw','basketball']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaowu',age:10,sex:'m',hobby:['sing','basketball']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaoliu',age:11,sex:'m',hobby:['footboll','dance']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaozeng',age:4,sex:'f',hobby:['footboll','dance']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaohe',age:8,sex:'f',hobby:['sing','dance']})
WriteResult({ "nInserted" : 1 })

4. 查找
查看班级所有人信息
MongoDB Enterprise > db.class.find();
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b524d2391dfb21d3ad0777"), "name" : "xiaoxiang", "age" : 9, "sex" : "m", "hobby" : [ "draw", "basketball" ] }
{ "_id" : ObjectId("64b524e1391dfb21d3ad0778"), "name" : "xiaowu", "age" : 10, "sex" : "m", "hobby" : [ "sing", "basketball" ] }
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b5250a391dfb21d3ad077a"), "name" : "xiaozeng", "age" : 4, "sex" : "f", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

查看班级中年龄为8岁的学生信息
MongoDB Enterprise > db.class.find({age:8});
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

查看年龄大于10岁的学生信息
MongoDB Enterprise > db.class.find({age:{$gt:10}})
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }

查看年龄在 4---8岁之间的学生信息 
MongoDB Enterprise > db.class.find({age:{$gte:4,$lte:8}})
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b5250a391dfb21d3ad077a"), "name" : "xiaozeng", "age" : 4, "sex" : "f", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

找到年龄为6岁且为男生的学生
MongoDB Enterprise > db.class.find({age:6,sex:'m'})
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }

找到年龄小于7岁或者大于10岁的学生
MongoDB Enterprise > db.class.find({$or:[{age:{$lt:7}},{age:{$gt:10}}]})
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b5250a391dfb21d3ad077a"), "name" : "xiaozeng", "age" : 4, "sex" : "f", "hobby" : [ "footboll", "dance" ] }

找到年龄是8岁或者11岁的学生
MongoDB Enterprise > db.class.find({$or:[{age:8},{age:11}]})
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

找到兴趣爱好有两项的学生
MongoDB Enterprise > db.class.find({$where:"this.hobby.length == 2"}){ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b524d2391dfb21d3ad0777"), "name" : "xiaoxiang", "age" : 9, "sex" : "m", "hobby" : [ "draw", "basketball" ] }
{ "_id" : ObjectId("64b524e1391dfb21d3ad0778"), "name" : "xiaowu", "age" : 10, "sex" : "m", "hobby" : [ "sing", "basketball" ] }
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b5250a391dfb21d3ad077a"), "name" : "xiaozeng", "age" : 4, "sex" : "f", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

找到兴趣爱好有draw的学生
MongoDB Enterprise > db.class.find({hobby:'draw'})
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b524d2391dfb21d3ad0777"), "name" : "xiaoxiang", "age" : 9, "sex" : "m", "hobby" : [ "draw", "basketball" ] }

找到既喜欢画画又喜欢跳舞的学生
MongoDB Enterprise > db.class.find({hobby:{$all:['dance','draw']}})

统计爱好有三项的学生人数
MongoDB Enterprise > db.class.find({$where:"this.hobby.length == 3"})

找出本班年龄第二大的学生
MongoDB Enterprise > db.class.find({}).sort({age:-1}).skip(1).limit(1)
{ "_id" : ObjectId("64b524e1391dfb21d3ad0778"), "name" : "xiaowu", "age" : 10, "sex" : "m", "hobby" : [ "sing", "basketball" ] }

查看学生的兴趣范围
MongoDB Enterprise > db.class.distinct('hobby')
[ "draw", "pingpong", "basketball", "sing", "dance", "footboll" 

将学生按年龄排序找到年龄最大的三个
MongoDB Enterprise > db.class.find({},{_id:0}).sort({age:-1}).limit(3)
{ "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "name" : "xiaowu", "age" : 10, "sex" : "m", "hobby" : [ "sing", "basketball" ] }
{ "name" : "xiaoxiang", "age" : 9, "sex" : "m", "hobby" : [ "draw", "basketball" ] }

删除所有 年级大于12或者小于4岁的学生
MongoDB Enterprise > db.class.deleteMany({$or:[{age:{$gt:12}},{age:{$lt:4}}]})
{ "acknowledged" : true, "deletedCount" : 0 }
5. 增加、更新、删除、统计
1. 将小红的年龄变为8岁 兴趣爱好变为 跳舞 画画
MongoDB Enterprise > db.class.update({'name':'小红'},{$set:{'age':8,'hobby':['dance','draw']}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

2. 追加小明兴趣爱好  唱歌
MongoDB Enterprise > db.class.update({'name':'小白'},{$push:{'hobby':'sing'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

3. 小王兴趣爱好增加  吹牛 打篮球
MongoDB Enterprise > db.class.update({'name':'小王'},{$push:{'hobby':{$each:['basketball','吹牛']}}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

4. 小李增加爱好,跑步和唱歌,但是不要和以前的重复
MongoDB Enterprise > db.class.update({'name':'小珍'},{$addToSet:{hobby:{$each:['running','sing']}}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

5. 该班所有同学年龄加1
MongoDB Enterprise > db.class.update({},{$inc:{age:1}},false,true)
WriteResult({ "nMatched" : 10, "nUpserted" : 0, "nModified" : 10 })

6. 删除小明的sex属性
MongoDB Enterprise > db.class.update({'name':'小白'},{$unset:{sex:0}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

7. 删除小李兴趣中的第一项
MongoDB Enterprise > db.class.update({'name':'小哲'},{$pop:{hobby:-1}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

8. 将小红兴趣中的画画爱好删除
MongoDB Enterprise > db.class.update({'name':'小红'},{$pull:{hobby:'draw'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

增加分数域 score:{'chinese':88,'english':78,'math':98}
1. 按照性别分组统计每组人数
MongoDB Enterprise > db.class.aggregate([ { $group: { _id: "$sex", count: { $sum: 1 } } }])
{ "_id" : null, "count" : 1 }
{ "_id" : "f", "count" : 4 }
{ "_id" : "m", "count" : 5 }

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

3. 统计每名男生的语文成绩
MongoDB Enterprise > db.class.aggregate([{$match:{sex:'m'}},{$project:{_id:0,name:1,'score.chinese':1}}])
{ "name" : "小刚", "score" : { "chinese" : 80 } }
{ "name" : "小猛", "score" : { "chinese" : 89 } }
{ "name" : "小绿", "score" : { "chinese" : 78 } }
{ "name" : "小青", "score" : { "chinese" : 75 } }
{ "name" : "小王", "score" : { "Chinese" : 80 } }

4. 将女生按照英语分数降序排列
MongoDB Enterprise > db.class.aggregate([{$match:{sex:'f'}},{$sort:{'score.english':-1}}]){ "_id" : ObjectId("64a5459ca1a01a01ed810f6c"), "name" : "小红", "age" : 9, "sex" : "f", "hobby" : [ "dance" ], "score" : { "chinese" : 95, "english" : 90, "math" : 85 } }
{ "_id" : ObjectId("64a545d7a1a01a01ed810f6d"), "name" : "小珍", "age" : 20, "sex" : "f", "hobby" : [ "draw", "sing", "dance", "computer", "running" ], "score" : { "chinese" : 93, "english" : 88, "math" : 94 } }
{ "_id" : ObjectId("64a548f0a1a01a01ed810f74"), "name" : "小霞", "age" : 21, "sex" : "f", "hobby" : [ "basketball", "dance", "draw" ], "score" : { "chinese" : 92, "english" : 85, "math" : 76 } }
{ "_id" : ObjectId("64a5463ea1a01a01ed810f6f"), "name" : "小芳", "age" : 21, "sex" : "f", "hobby" : [ "draw", "sing" ], "score" : { "chinese" : 86, "english" : 80, "math" : 90 } }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2576.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDK JRE JVM

JDK JRE JVM JDKJREJVM三者之间的联系三者之间的区别 JDK JDK是用于开发、编译、调试和运行Java应用程序的软件包,包含了Java编程语言的开发工具和Java运行时环境。JDK包括Java编译器(javac)、Java虚拟机(JVM)和Java类…

单轴机器人的结构与特点

单轴机器人是由马达驱动的移动平台,由滚珠螺杆和 U型线性滑轨导引构成,其滑座同时为滚珠螺杆的驱动螺帽及线性滑轨的导引滑块,可用半导体、光电、交通运输业、环保节能产业、精密工具机、机械产业、智慧自动化、生技医疗上。 相对于传统的模组…

django使用channels实现webSocket启动失败

问题描述 使用channels启动ASGI结果却是普通启动,如下: Watching for file changes with StatReloader Performing system checks...System check identified no issues (0 silenced). July 15, 2023 - 18:23:49 Django version 4.2, using settings s…

JavaWeb(3)——HTML、CSS、JS 快速入门

一、JavaScript 运算符 • 赋值运算符( ) 赋值运算符执行过程? 将等号右边的值赋予给左边, 要求左边必须是一个容器 出现是为了简化代码, 比如让 let age 18 ,age 加 2 怎么写呢 let age 18age 2console.log(age)age * 2con…

【运维】第02讲(下):企业 Nginx 高性能优化配置实战总结

如果你作为网站类的技术工程师,并且把 Nginx 作为代理入口的 HTTP 网关,这时对于网站优化有效的方式除了需要考虑基础配置优化外,更有用的方式就是优化缓存,这一课时我们就详细讲解缓存配置优化的具体内容。 用到缓存优化主要期望提高网站服务访问效率,减少服务端的性能使…

HCIP第十三天(笔记)

STP --- 生成树协议 冗余 线路冗余 设备冗余 网关冗余 UPS冗余 二层环路引发的问题 1.广播风暴 --- 广播帧在二层环路中会形成顺时针和逆时针两重环路,无限循环,最终将导致设备宕机,最终导致网络瘫痪 2.MAC地址表的翻摆(MAC地址…

javaee jstl表达式

jstl是el表达式的扩展 使用jstl需要添加jar包 package com.test.servlet;import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;import javax.servlet.ServletException; import javax.servlet…

积分商城运营成功的5个关键要素

积分商城系统运营是提高客户忠诚度和增加销售的重要策略之一。然而,要确保积分商城系统能够取得成功,需要注意一些关键要素。本文将介绍积分商城运营成功的5个关键要素,帮助你建立一个高效、吸引力强的积分商城系统,提高客户忠诚度…

下载编译Chromium

参考:Mac上本地编译Chrome浏览器踩坑笔记(2021.02最新) - 掘金 For Mac: 一、下载编译工具链:deptool git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH"$PATH:/Users/yumlu/cod…

Flutter 自定义 五星评价

使用 Flutter 进行自定义控件 学习使用Flutter 自定义 五星评价 展示控件 // 星星评分展示 class starRating extends StatefulWidget {// 初始化一些参数final double rating; // 当前分数final double maxRating; // 满分final int count; // 评分个数final double size; /…

什么是DevOps监控以及如何在组织中实施?

如今的软件开发商经常面临两大挑战——快速交付和大规模创新。DevOps通过在软件开发生命周期(SDLC)中引入自动化来开发和交付高质量的软件,从而帮助解决这些挑战。 持续集成(CI)/持续部署(CD)是DevOps实践中自动化的关键组件。它可以自动化代码构建、测试…

力扣 1005. K 次取反后最大化的数组和

题目来源:https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations/description/ C题解1:最直接的想法就是负的变正的,如果负的元素数量小于k,就挑选绝对值大的负数变正;如果负的元素数量大于k&#xf…

阿里云声音复刻

阿里云声音复刻 个性化人声定制 阿里云个性化人声定制是智能语音交互产品自学习平台下的一部分 使用方式:https://help.aliyun.com/document_detail/456006.html 方式一:控制台界面定制使用方式 方式二:通过OpenAPI定制:在该页…

回归预测 | MATLAB实现基于KELM-Adaboost核极限学习机结合AdaBoost多输入单输出回归预测

回归预测 | MATLAB实现基于KELM-Adaboost核极限学习机结合AdaBoost多输入单输出回归预测 目录 回归预测 | MATLAB实现基于KELM-Adaboost核极限学习机结合AdaBoost多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于KELM-Adaboo…

IP基础知识总结

IP他负责的是把IP数据包在不同网络间传送,这是网络设计相关的,与操作系统没有关系。所以这部分知识,不是网络的重点。IP和路由交换技术联系紧密。但是要作为基本知识点记住。 一、基本概念 网络层作用:实现主机与主机之间通信。 …

linux之Ubuntu系列(三)远程管理指令☞SSH 高级应用 RSA非对称加密 以及免密登录,配置别名

对称加密 、非对称加密 1、对称加密中加密和解密使用的秘钥是同一个;非对称加密中采用两个密钥,一般使用公钥进行加密,私钥进行解密。 2、对称加密解密的速度比较快,非对称加密和解密花费的时间长、速度相对较慢。 3、对称加密的…

81. 正则表达式

一、概述二、匹配单个字符三、匹配一组字符四、使用元字符五、重复匹配六、位置匹配七、使用子表达式八、回溯引用九、前后查找十、嵌入条件参考资料 一、概述 正则表达式用于文本内容的查找和替换。 正则表达式内置于其它语言或者软件产品中,它本身不是一种语言或…

uniapp微信小程序使用axios(vue3+axios+ts版)

版本号 "vue": "^3.2.45", "axios": "^1.4.0", "axios-miniprogram-adapter": "^0.3.5", 安装axios及axios适配器,适配小程序 yarn add axios axios-miniprogram-adapter 使用axios 在utils创建utils/…

7个银行的软件测试项目实战,别再说简历项目不知道怎么写了

目录 前言 项目描述1:上海华瑞银行直连票据项目 项目描述2:平安金服风控中台系统 项目描述3:众安创展APP项目 项 目4: 招商银行VTM自助渠道服务系统 项 目5:招商银行票据支付 项 目6: 平安银行风控系…

Virus Total 曝数据泄露大事件:涉及多国情报部门

The Hacker News 网站披露,可疑文件和病毒在线检测平台 VirusTotal 曝出数据泄露事故,一名员工无意中将部分 VirusTotal 注册客户的姓名、电子邮件地址等敏感数据信息上传到了恶意软件扫描平台,此举导致约 5600 名用户数据泄露。 据悉&#x…