redis和mongodb数据库的基本操作

news2024/11/18 1:28:34

目录

一、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列表的头部


    (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 


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}}])

 

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

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

相关文章

【开发者指南】MyEclipse是如何支持AngularJS的?

MyEclipse在2015 CI 7版本中就引入了对AngularJS的支持,接着往下看,本文将介绍它包含的功能特性。 MyEclipse v2023.1.1离线版下载 1. 支持AngularJS MyEclipse对AngularJS的初始支持在MyEclipse 2015 CI 7中可用,后续版本将提供更多的Ang…

linux进程间通信的本质

因为进程间具有独立性,你们想用进行进程间通信,难度还是比较大的。 进程间通信的本质就是让不同的进程看到同一份资源。 为什么要进行进程间通信——交互数据、控制、通知等目标 进程间通信的技术背景 进程是具有独立性的。虚拟地址空间页表 保证进程运…

Java基础---常用类大全以及各数据结构的方法大全

目录 前言 一、Math类 二.Scanner类 三、String类、StringBuilder和StringBuffer类 💖String类 💖StringBuilder和StringBuffer 四.Arrays类 五.Random类 六.时间类 七.ArrayList顺序表 八、LinkedList与链表 九.Stack栈和Queue队列 十.Pri…

UE5 DLC

前言 在网上找了很多文档,并没有介绍DLC如何创建,但是对比多篇文档后,可以总结为DLC也是Pak包,本质上还是补丁包,B站上有一篇视频介绍了: [UE4]如何在虚幻4游戏里添加DLC的教程(中英机翻)_哔哩哔哩_bilibili 但是也感觉不对,因为要改Build.cs文件。故研究了一下插件式…

【python】python五月国内社会消费品零售总额数据分析(代码+数据+报告)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 &#x…

ARM微控制器 AM2432BSEFHIALXR、AM2432BSFFHIALV技术参数(32位MCU)

1、AM2432BSEFHIALXR 32位MCU采用293引脚FCCSP封装,工作频率最高可达800MHz。该微控制器专为需要结合处理和实时通信的工业应用而构建,例如远程I/O模块和电机驱动器。 核心处理器:ARM Cortex-M4F,ARM Cortex-R5F 内核规格&#xf…

2.数据结构--空间复杂度

文章目录 一、空间复杂度讲解二、计算下列经典例题的空间复杂度1.冒泡排序的空间复杂度 O(1)2.斐波那契递归的空间复杂度 O(N)3.计算阶乘递归的空间复杂度 O(N) 三、时间复杂度和空间复杂度的对比四、常见的函数的时间复杂度和空间复杂度的总结 一、空间复杂度讲解 1.空间复杂…

复习第五课 C语言-初识数组

目录 【1】初识数组 【2】一维数组 【3】清零函数 【4】字符数组 【5】计算字符串实际长度 练习: 【1】初识数组 1. 概念:具有一定顺序的若干变量的集合 2. 定义格式: 数组名 :代表数组的首地址,地址常量&…

【iOS】ARC内存管理

内存管理 内存管理的思考方式iOS底层内存管理方式1. tagged pointer2. on-pointer iSA--非指针型iSA3. SideTables,RefcountMap,weak_table_t 内存管理有关修饰符__strong修饰符对象的所有者和对象的生命周期__strong对象相互赋值方法参数中使用__strong…

LeetCode 热题 100(一):哈希。49. 字母异位词分组、128. 最长连续序列。

LeetCode100链接:LeetCode 热题 100 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台 一、49. 字母异位词分组 题目要求: 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。…

【ACM】—蓝桥杯大一暑期集训Day2

🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前正在学习C/C、Java、算法等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL&#xff…

10秒搞定!教你如何轻松压缩jpg格式图片大小!

大家在日常拍照时,都会发现拍摄出来的JPG图片体积比较大,使用和保存时都会比较麻烦。那么该怎样压缩图片大小呢? 首先,我们需要了解什么是JPG压缩。JPG是一种有损压缩格式,通过减少图像中的信息量来使文件大小缩小。使…

Java实现多文件上传及进度条提示-源码下载

1、方案概述 1、案例框架使用的是springmvc5.3.16版本,jackson使用的是2.13.3版本。 2、前端使用的是Layui2.8.11框架,这个框架上手较为容易。 3、使用关键类CommonsMultipartResolver和MultipartHttpServletRequest实现多文件捕获。 2、效果预览 【选择文件】 【上传过…

Android JNI线程的同步 (十三)

🔥 Android Studio 版本 🔥 🔥 了解线程同步的两个变量 🔥 pthread_mutex_t 互斥锁 线程的互斥: 目前存在两个线程 , 线程A和线程B, 只允许只有一个资源对临界资源进程操作 (大概意思就是 : A线程 进入操作临界资源的时候 , 那么 B线程 就要进行等待 . 等到 A线程…

感受C++模版的所带来的魅力,扎实基础,扩展思维

一、泛型编程思想 首先我们来看一下下面这三个函数,如果学习过了 C函数重载 和 C引用 的话,就可以知道下面这三个函数是可以共存的,而且传值会很方便void Swap(int& left, int& right) {int temp left;left right;right temp; } …

Nuxt.js--》解密Nuxt.js:构建优雅、高效的现代化Vue.js应用

博主今天开设Nuxt.js专栏,带您深入探索 Nuxt.js 的精髓,学习如何利用其强大功能构建出色的前端应用程序。我们将探讨其核心特点、灵活的路由系统、优化技巧以及常见问题的解决方案。无论您是想了解 Nuxt.js 的基础知识,还是希望掌握进阶技巧&…

【C++】Eigen库实现最小二乘拟合

前言 入职第二周的任务是将导师的Python代码C化&#xff0c;发现Python中存在Numpy包直接调用np.polyfit就好了&#xff0c;但是C不存在需要造轮子。 #include <iostream> #include <cmath> #include <vector> #include <Eigen/QR> #include "x…

re学习(15)BUUCTF 2019红帽杯easyRe(寻找数据+xor问题)

参考视频&#xff1a; 【BUUCTF】每天一个CTF11“2019红帽杯easyRe”_哔哩哔哩_bilibili &#xff08;本人觉得看视频比看博客效率能提高十倍&#xff0c;呜呜呜&#xff0c;还是视频香~~~与君共勉&#xff09; 下载地址&#xff1a; BUUCTF在线评测 前言&#xff1a;虽然…

Spring Boot集成Redisson实现分布式锁

Spring Boot集成Redisson实现分布式锁 在分布式系统中&#xff0c;为保证数据的一致性和并发访问的安全性&#xff0c;我们经常会使用分布式锁来协调多个节点之间对共享资源的访问。Redisson是一个基于Redis的Java驻内存数据网格&#xff08;In-Memory Data Grid&#xff09;和…

【C++】string类模拟

文章目录 成员变量和查看接口迭代器&#xff08;读和读写&#xff09;operator[]&#xff08;读和读写&#xff09;c_str()size() 构造函数用字符串构造用对象构造&#xff08;两种方法&#xff09;析构 赋值运算符重载扩容和调整reserve()resize()clear() 增删查改push_back()…