Redis,MongoDB基本操作练习题

这篇具有很好参考价值的文章主要介绍了Redis,MongoDB基本操作练习题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

语法不会可以在官网上查询MongoDB教程

NoSQL练习:

Redis

String类型基本操作:

#set
192.168.110.128:6379> set name 'harry'
OK
#get
192.168.110.128:6379> get name
"harry"

#数字自增
192.168.110.128:6379> set num 2
OK
192.168.110.128:6379> get num
"2"
192.168.110.128:6379> INCR num
(integer) 3
192.168.110.128:6379> get num
"3"
#自减
192.168.110.128:6379> DECR num
(integer) 2
192.168.110.128:6379> get num
"2"

#获取字符长度
192.168.110.128:6379> STRLEN name
(integer) 5
192.168.110.128:6379> get name
"harry"

List类型基本操作:

#对列表city插入元素:Shanghai Suzhou Hangzhou
192.168.110.128:6379> LPUSH city shanghai
(integer) 1
192.168.110.128:6379> LPUSH city suzhou
(integer) 2
192.168.110.128:6379> LPUSH city hangzhou
(integer) 3
#将列表city里的头部的元素移除
192.168.110.128:6379> LPOP city
"hangzhou"
#将name列表的尾部元素移除到number列表的头部
192.168.110.128:6379> RPOPLPUSH city number
"beijing"
192.168.110.128:6379> LINDEX number 0
"beijing"
#对一个已存在的列表插入新元素
192.168.110.128:6379> RPUSH  city beijing
(integer) 4
192.168.110.128:6379> LINDEX city -1
"beijing"
#查看list的值长度
192.168.110.128:6379> LLEN city
(integer) 3

hash类型基本操作:

#设置一个hash表,order表里包括的键值信息有:id:1,customer_name:张三
192.168.110.128:6379> HSET hp id 1 
OK
192.168.110.128:6379> HGET hp
1) "id"
2) "1"
#创建一个hash表,表里的键值批量插入
192.168.110.128:6379> HMSET hp2 id 1 name 'lisi' id 2 name 'wuwang'
OK
192.168.110.128:6379> HGETALL hp2
1) "id"
2) "2"
3) "name"
4) "wuwang"
#获取order对应的map的所有key
192.168.110.128:6379> HKEYS order
1) "id"
2) "name"
#获取order对应的map的键值数量
192.168.110.128:6379> HLEN order
(integer) 2
#获取order表里的id值
192.168.110.128:6379> HVALS order
1) "1"
2) "bob"
#查看key是否存在
192.168.110.128:6379> EXISTS name
(integer) 1
#查找满足pattern的keys
192.168.110.128:6379> KEYS name
1) "name"
#查看key的超时时间
192.168.110.128:6379> TTL name
(integer) -1
#遍历key
192.168.110.128:6379> KEYS *
1) "k2"
2) "name"
3) "hp"
4) "number"
5) "hp2"
6) "order"
7) "city"
8) "k1"
9) "num"

MongoDB:

创建一个数据库 名字grade:

> use grede
switched to db grede
#有则使用没有则创建

创建class集合:

> db.createCollection("class")

集合中插入若干数据:

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

> db.class.insertMany([{name:'lisi',age:4,sex:'m',hobby:['dance','sing','draw']},{name:'wangwu',age:7,sex:'f',hooby:['sing','dance','computer']},{name:'zhangsan',age:6,sex:'m',hobby:['game','code','dance']}])
{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("64b28a4ffb91465cc9ea745c"),
                ObjectId("64b28a4ffb91465cc9ea745d"),
                ObjectId("64b28a4ffb91465cc9ea745e")
        ]
}

查看班级所有人信息:

> db.class.find()
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745c"), "name" : "lisi", "age" : 4, "sex" : "m", "hobby" : [ "dance", "sing", "draw" ] }
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745d"), "name" : "wangwu", "age" : 7, "sex" : "f", "hooby" : [ "sing", "dance", "computer" ] }
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745e"), "name" : "zhangsan", "age" : 6, "sex" : "m", "hobby" : [ "game", "code", "dance" ] }

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

> db.class.find({age:8})
{ "_id" : ObjectId("64b28b7efb91465cc9ea745f"), "name" : "sunqi", "age" : 8, "sex" : "m", "hobby" : [ "dance", "computer", "draw" ] }

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

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

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

> db.class.find({age:{$gt:4,$lt:8}})
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745d"), "name" : "wangwu", "age" : 7, "sex" : "f", "hooby" : [ "sing", "dance", "computer" ] }
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745e"), "name" : "zhangsan", "age" : 6, "sex" : "m", "hobby" : [ "game", "code", "dance" ] }

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

> db.class.find({age:6,sex:'m'})
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745e"), "name" : "zhangsan", "age" : 6, "sex" : "m", "hobby" : [ "game", "code", "dance" ] }

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

> db.class.find({$or: [{age:{$lt:7}},{age:{$gt:10}}]})
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745c"), "name" : "lisi", "age" : 4, "sex" : "m", "hobby" : [ "dance", "sing", "draw" ] }
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745e"), "name" : "zhangsan", "age" : 6, "sex" : "m", "hobby" : [ "game", "code", "dance" ] }

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

> db.class.find({$or: [{age:8},{age:11}]})
{ "_id" : ObjectId("64b28b7efb91465cc9ea745f"), "name" : "sunqi", "age" : 8, "sex" : "m", "hobby" : [ "dance", "computer", "draw" ] }

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

db.class.find({hobby:{$size:2}})
{ "_id" : ObjectId("64b4b267324c94c22a9d0010"), "name" : "小李", "age" : 4, "sex" : "m", "hobby" : [ "dance", "sing" ] }

找到兴趣爱好有draw的学生:

> db.class.find({hobby:/^draw/})
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745c"), "name" : "lisi", "age" : 4, "sex" : "m", "hobby" : [ "dance", "sing", "draw" ] }
{ "_id" : ObjectId("64b28b7efb91465cc9ea745f"), "name" : "sunqi", "age" : 8, "sex" : "m", "hobby" : [ "dance", "computer", "draw" ] }

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

> db.class.find({$and:[{hobby:/^draw/},{hobby:/^dance/}]})
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745c"), "name" : "lisi", "age" : 4, "sex" : "m", "hobby" : [ "dance", "sing", "draw" ] }
{ "_id" : ObjectId("64b28b7efb91465cc9ea745f"), "name" : "sunqi", "age" : 8, "sex" : "m", "hobby" : [ "dance", "computer", "draw" ] }

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

> db.class.find({hobby:{$size:3}})
{ "_id" : ObjectId("64b4af4b324c94c22a9d000d"), "name" : "lisi", "age" : 4, "sex" : "m", "hobby" : [ "dance", "sing", "draw" ] }
{ "_id" : ObjectId("64b4af4b324c94c22a9d000f"), "name" : "zhangsan", "age" : 6, "sex" : "m", "hobby" : [ "game", "code", "dance" ] }
{ "_id" : ObjectId("64b4b267324c94c22a9d0012"), "name" : "小红", "age" : 6, "sex" : "m", "hobby" : [ "game", "code", "draw" ] }

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

> db.class.find().sort({age:-1}).limit(1).skip(1)
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745d"), "name" : "wangwu", "age" : 7, "sex" : "f", "hooby" : [ "sing", "dance", "computer" ] }

查看学生的兴趣范围:

> db.class.distinct('hobby')
[ "dance", "draw", "sing", "code", "game" ]

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

> db.class.find().sort({age:-1}).limit(3)
{ "_id" : ObjectId("64b28b7efb91465cc9ea745f"), "name" : "sunqi", "age" : 8, "sex" : "m", "hobby" : [ "dance", "computer", "draw" ] }
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745d"), "name" : "wangwu", "age" : 7, "sex" : "f", "hooby" : [ "sing", "dance", "computer" ] }
{ "_id" : ObjectId("64b28a4ffb91465cc9ea745e"), "name" : "zhangsan", "age" : 6, "sex" : "m", "hobby" : [ "game", "code", "dance" ] }

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

> db.class.remove({$or: [{age:{$lt:4}},{age:{$gt:12}}]})
WriteResult({ "nRemoved" : 0 })

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

> db.class.update({name:'小红'},{$set:{age:8,hobby:['dance','draw']}})
#RES
> db.class.find()
{ "_id" : ObjectId("64b4b267324c94c22a9d0012"), "name" : "小红", "age" : 8, "sex" : "m", "hobby" : [ "dance", "draw" ] }

追加小明兴趣爱好 唱歌:

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

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

> db.class.update({name:'小王'},{$pushAll:{hobby:['吹牛','basketball']}})

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

> db.class.update({name:'小王'},{$addToSet:{hobby:{$each:['running','sing']}}})

该班所有同学年龄加1:

> db.class.update({},{$inc:{age:1}},false,true)

删除小明的sex属性:

> db.class.update({name:'小明'},{$unset:{sex:0}})

删除小李兴趣中的第一项:

db.class.update({name:'小李'},{$pop:{hobby:-1}})

将小红兴趣中的画画爱好删除:

> db.class.update({name:'小红'},{$pull:{hobby:'draw'}})

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

> db.class.update({},{$set:{score:{'chinese':88,'english':78,'math':98}}})

按照性别分组统计每组人数:

> db.class.aggregate({$group:{_id:'sex',num:{$sum:1}}})
{ "_id" : "sex", "num" : 6 }

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

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

统计每名男生的语文成绩:

> db.class.aggregate([{$match:{sex:'m'}},{$project:{_id:0,name:1,'score.chinese':1}}])
{ "name" : "lisi", "score" : { "chinese" : 88 } }
{ "name" : "zhangsan" }
{ "name" : "小李", "score" : { "chinese" : 88 } }
{ "name" : "小红", "score" : { "chinese" : 88 } }

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

> db.class.aggregate([{$match:{sex:'f'}},{$sort:{'score.english':-1}}])
{ "_id" : ObjectId("64b4af4b324c94c22a9d000e"), "name" : "wangwu", "age" : 8, "sex" : "f", "hooby" : [ "sing", "dance", "computer" ], "score" : { "chinese" : 88, "english" : 78, "math" : 98 } }

注:
文章有问题请评论或联系更正:wgq3135@163.com文章来源地址https://www.toymoban.com/news/detail-599374.html

到了这里,关于Redis,MongoDB基本操作练习题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 操作系统第四章练习题

    第三部分 填空题 将作业地址空间中的逻辑地址转换为主存中的物理地址的过程称为(      )。地址变换   分区分配中的存储保护通常采用(      )方法。界限寄存器和存储保护键 把(      )地址转换为(      )地址的工作称为地址映射。逻辑、物理 重定位的

    2024年02月11日
    浏览(41)
  • 操作系统第二章练习题

    第三部分 选择题 1、在进程管理中,当(     )时,进程从阻塞状态变为就绪状态。   C  A.进程被进程调度程序选中              B.等待某一事件 C.等待的事件发生                       D.时间片用完 2、分配到必要的资源并获得处理机时的进程状态是(

    2024年02月07日
    浏览(53)
  • 【Java练习题汇总】《第一行代码JAVA》多线程篇,汇总Java练习题——线程及多线程概念、Thread 类及 Runnable 接口、线程状态、synchronized同步操作...

    一、填空题 Java 多线程可以依靠________ 、________ 和________ 三种方式实现。 多个线程操作同一资源的时候需要注意________,依靠________ 实现,实现手段是:________ 和________,过多的使用,则会出现________ 问题。 Java 程序运行时,至少启动________ 个线程,分别是________ 和_

    2024年02月16日
    浏览(58)
  • c++ 对类与对象的基础框架+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏

    上一章,我们将c++入门的基础知识进行了学习,本章其实才算真正的跨入到c++开始可能比较难,但只有我们唯有不断的前进,才能斩断荆棘越过人生的坎坷!            话不多说安全带系好,发车啦 (建议电脑观看) 。     附:红色,部分为重点部分;蓝颜色为需要记

    2024年02月01日
    浏览(38)
  • Java操作mongodb的基本操作

    目录 MongoDB的基本操作 新增 方式一: 方式二: 删除:  带条件的删除 修改 修改条件 修改并添加  多条件修改: 查询 普通查询 条件查询 ​编辑 多条件查询 模糊查询: 查询除来的结果有两种的显示方式: MongoDB中的文档本质上是一种类似JSON的BSON格式的数据。 BSON是一种类

    2023年04月09日
    浏览(52)
  • C++ 类与对象中类的深入知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏

    本章我们接着对类和对象进行探索,这是一个在我们c++中比较重要的知识点,下面我们才是我们类和对象的更加深入且困难的知识点,希望你能通过这篇文章对类其有更加深入的了解。 话不多说安全带系好,发车啦(建议电脑观看)。 附:红色,部分为重点部分;蓝颜色为

    2024年02月04日
    浏览(64)
  • MongoDB操作基本教程

    v6.0.7 bin目录下默认可执行文件说明 mongod 实例,这样不仅减少资源竞争,而且服务器故障也不会同时影响到多个服务。 mongos 在分片集群中扮演路由的角色,提供客户端和分片之间的接口。 mongosh 是 MongoDB 集成的交互式 shell 工具。 数据库工具 需要另外下载:https://www.mongodb

    2024年02月16日
    浏览(36)
  • C#使用MongoDB-第一章 基本操作

    这里在C#中所使用的连接MongoDB数据库的依赖库为 MongoDB.Driver ,使用前先到Nuget中进行安装。 MongoDB.Driver 中,用于连接数据库的类型为 MongoClient 。 注意, MongoClient 对象表示的是数据库的连接池,因此我们在开发项目时,大多数情况只需要创建一个 MongoClient 实例就够了。 标准

    2024年01月17日
    浏览(42)
  • C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏

            从本章开始我们正式进入到C++的内容,对此如果没有学习过C语言的建议先将C语言系统的学习一遍后再来(已经更新完在专栏就能看到)。 话不多说安全带系好,发车啦 (建议电脑观看) 。 附:红色,部分为重点部分;蓝颜色为需要记忆的部分(不是死记硬背哈,

    2023年04月24日
    浏览(106)
  • PyTorch基本操作练习

    实现了一些PyTorch基本操作,原理可参考《神经网络与深度学习》《动手学深度学习》中的内容。个人练习,切勿与任何作业和考试挂钩。代码运行在Python 3.9.7版本以及Pytorch 1.10版本中。 使用Tensor初始化一个1×3的矩阵M和一个2×1的矩阵N,对两矩阵进行减法操作(三种不同形式

    2024年02月17日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包