NOSQL简单实战

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

目录

实战一:

  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

实战二:

举例说明list和hash的应用场景,每个至少一个场景

list:

hash:

mongodb实战:

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

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

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

4. 查找

查看班级所有人信息

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

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

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

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

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

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

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

 找到兴趣爱好有draw的学生

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

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

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

 查看学生的兴趣范围

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

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

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

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

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

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

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

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

 6. 删除小明的sex属性

7. 删除小李兴趣中的第一项

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

6. 增加分数域

1. 按照性别分组统计每组人数

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

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

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


实战一:

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

注:登录时使用--raw,就能中文输入否则会出现乱码。

NOSQL简单实战,nosql,数据库

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

(1) 设置键值:

set str 66

(2) 读取键值:

get str

(3) 数值类型自增1:

incr str

 (4) 数值类型自减1:

decr str

(5) 查看值的长度:

strlen str

结果如下: 

NOSQL简单实战,nosql,数据库

 文章来源地址https://www.toymoban.com/news/detail-579298.html

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


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

lpush city shanghai suzhou hangzhou

NOSQL简单实战,nosql,数据库
    

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

lpop city

NOSQL简单实战,nosql,数据库
  

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

lpush name zhangsan lisi wangwu        #创建name
rpoplpush name number                  #移动

NOSQL简单实战,nosql,数据库
  

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

rpushx city chongqing 

NOSQL简单实战,nosql,数据库

(5)查看list的值长度


127.0.0.1:6379> llen city
(integer) 3
127.0.0.1:6379> llen name
(integer) 2
127.0.0.1:6379> llen number
(integer) 1
127.0.0.1:6379> 

NOSQL简单实战,nosql,数据库

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


     (1) 设置一个hash表,order表里包括的键值信息有:id:1,customer_name:张三

hmset order id 1 customer_name "zhangsan"

NOSQL简单实战,nosql,数据库
    

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

 hmset gagale name lisi age 66 gender nan

NOSQL简单实战,nosql,数据库
    

(3) 获取order对应的map的所有key

hkeys order

NOSQL简单实战,nosql,数据库
  

(4) 获取order对应的map的键值数量

hvals order

NOSQL简单实战,nosql,数据库

(5) 获取order表里的id值

hmget order id

         4、Keys相关的命令操作     

(1) 查看key是否存在

exists name

NOSQL简单实战,nosql,数据库
(2) 查找满足pattern的keys

keys n*

NOSQL简单实战,nosql,数据库
(3) 查看key的超时时间

 PTTL:是以毫秒为单位显示

TTL:是以秒为单位显示


pttl city

ttl city

NOSQL简单实战,nosql,数据库
 (4) 遍历key

scan 0 

scan 0 match n*

scan 0 match n* count 1

NOSQL简单实战,nosql,数据库

NOSQL简单实战,nosql,数据库 

实战二:

举例说明list和hash的应用场景,每个至少一个场景

list:

List类型一般用于关注人、简单队列等。

List的应用场景-消息队列(Message Queue):
List适用于构建简单的消息队列,特别是在需要处理实时或异步任务时。你可以使用List的左侧(或右侧)作为队列的入口,将消息按照一定的顺序添加到List中。消费者可以从List的右侧(或左侧)获取消息,并在处理后将其移除。这样可以实现基本的消息发布和订阅模式。

hash:

Hash类型一般用于存储用户信息、用户主页访问量、组合查询等。

Hash的应用场景-用户存储及缓存:
Hash适用于存储和缓存复杂的数据结构,如用户信息。你可以使用Hash来存储用户的属性和相应的值。每个用户可以被表示为一个独立的Hash对象,可以很方便地进行获取、更新和查询用户属性。

mongodb实战:

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

use grade

NOSQL简单实战,nosql,数据库

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.insertMany([
  {name: 'xiaohong', age: 7, sex: 'F', hobby: ['draw', 'dance']},
  {name: 'xiaoming', age: 8, sex: 'M', hobby: ['sing', 'basketball']},
  {name: 'xiaowang', age: 10, sex: 'M', hobby: ['pingpong', 'computer']},
  {name: 'xiaoli', age: 6, sex: 'M', hobby: ['draw', 'football']},
  {name: 'zhangsan', age: 11, sex: 'M', hobby: ['dance', 'basketball']},
  {name: 'lisi', age: 9, sex: 'M', hobby: ['draw', 'sing', 'dance']},
  {name: 'wangwu', age: 7, sex: 'F', hobby: ['pingpong', 'draw']},
  {name: 'zhaoliu', age: 12, sex: 'M', hobby: ['football', 'computer']},
  {name: 'xiaoqi', age: 5, sex: 'F', hobby: ['sing']},
  {name: 'xiaoba', age: 8, sex: 'F', hobby: ['draw', 'dance']}
]);

NOSQL简单实战,nosql,数据库

4. 查找


查看班级所有人信息

db.class.find()

NOSQL简单实战,nosql,数据库

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

db.class.find({age:8})

NOSQL简单实战,nosql,数据库 
查看年龄大于10岁的学生信息

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

NOSQL简单实战,nosql,数据库

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

db.class.find({age:{$gt:4,$lt:8}})

NOSQL简单实战,nosql,数据库

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

db.class.find({age:6,sex:"M"})

NOSQL简单实战,nosql,数据库

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

db.class.find({ $or: [ { age: { $lt: 7 } }, { age: { $gt: 10 } } ] });

NOSQL简单实战,nosql,数据库 

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

db.class.find({$or:[{age:8},{age:11}]});

NOSQL简单实战,nosql,数据库

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

 在MongoDB中,你可以使用查询操作符 $size 来查找具有指定长度的数组字段。

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

NOSQL简单实战,nosql,数据库

 找到兴趣爱好有draw的学生

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

NOSQL简单实战,nosql,数据库

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

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

NOSQL简单实战,nosql,数据库

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

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

NOSQL简单实战,nosql,数据库

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

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

NOSQL简单实战,nosql,数据库

 查看学生的兴趣范围

db.class.find({}, { "_id": 0, "hobby": 1 });

NOSQL简单实战,nosql,数据库

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

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

NOSQL简单实战,nosql,数据库

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

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

NOSQL简单实战,nosql,数据库

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


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

db.class.update({name:"xiaohong"},
... {$set:{age:8,hobby:["dance","draw"]}});

NOSQL简单实战,nosql,数据库

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

db.class.update({name:"xiaoming"}, {$push:{hobby:"sing"}});

NOSQL简单实战,nosql,数据库
3. 小王兴趣爱好增加  吹牛 打篮球

db.class.update({name:"xiaowang"}, {$push:{hobby:["basketball","brag"]}});

NOSQL简单实战,nosql,数据库

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

注:这里因为我自己的素材没有重复所以增加了篮球和画画

db.class.update({name:"xiaoli"}, {$addToSet:{hobby:{$each:["basketball","draw"]}}});

NOSQL简单实战,nosql,数据库

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

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

NOSQL简单实战,nosql,数据库

 6. 删除小明的sex属性

db.class.update({name:"xiaoming"},{$unset:{sex:""}})

NOSQL简单实战,nosql,数据库

7. 删除小李兴趣中的第一项

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

NOSQL简单实战,nosql,数据库

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

db.class.update({name:'xiaohong'},{$pull:{hobby:'draw'}});

NOSQL简单实战,nosql,数据库

6. 增加分数域

score:{'chinese':88,'english':78,'math':98}

注:这里因为忘了保存所以再次插入了数据。

db.class.insertMany([
{name: 'xiaohong', age: 7, sex: 'F', hobby: ['draw', 'dance'], score: {chinese: 91, english: 78, math: 85}},
{name: 'xiaoming', age: 8, sex: 'M', hobby: ['sing', 'basketball'], score: {chinese: 90, english: 85, math: 73}},
{name: 'xiaowang', age: 10, sex: 'M', hobby: ['pingpong', 'computer'], score: {chinese: 77, english: 92, math: 81}},
{name: 'xiaoli', age: 6, sex: 'M', hobby: ['draw', 'football'], score: {chinese: 88, english: 94, math: 67}},
{name: 'zhangsan', age: 11, sex: 'M', hobby: ['dance', 'basketball'], score: {chinese: 79, english: 82, math: 88}},
{name: 'lisi', age: 9, sex: 'M', hobby: ['draw', 'sing', 'dance'], score: {chinese: 93, english: 71, math: 97}},
{name: 'wangwu', age: 7, sex: 'F', hobby: ['pingpong', 'draw'], score: {chinese: 86, english: 90, math: 79}},
{name: 'zhaoliu', age: 12, sex: 'M', hobby: ['football', 'computer'], score: {chinese: 80, english: 83, math: 92}},
{name: 'xiaoqi', age: 5, sex: 'F', hobby: ['sing'], score: {chinese: 75, english: 87, math: 84}},
{name: 'xiaoba', age: 8, sex: 'F', hobby: ['draw', 'dance'], score: {chinese: 94, english: 76, math: 89}}
]);

 NOSQL简单实战,nosql,数据库

1. 按照性别分组统计每组人数

db.class.aggregate([{$group:{_id: "$sex",count:{$sum:1}}}])

NOSQL简单实战,nosql,数据库

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

 注:因为没有重名的同学所以将xiaoqi改成了小红

db.class.update({name:"xiaoba"},{$set:{name:'xiaohong'}});
> db.class.aggregate([{$group: {_id:"$name",count: { $sum: 1 },names: { $push: "$name" }}},   {$match: {count: {$gt: 1 }     }   } ])

NOSQL简单实战,nosql,数据库

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

 db.class.aggregate([{$match: {sex: "M"}},{$group: {_id: "$name",chineseScore: { $first: "$score.chinese" }}}])

NOSQL简单实战,nosql,数据库

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

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


NOSQL简单实战,nosql,数据库

 

 

到了这里,关于NOSQL简单实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 数据库选型sql和nosql

    1.1关系型数据库sql和非关系型数据库nosql 1.2关系型数据库特点: 数据结构化存储在二维表中 支持事务的原子性A,一致性C,隔离性I持久性D 特性 支持使用SQL语言对存储在其中的数据进行操作 1.3关系型数据库的适用场景: 数据之间存在着一定关系,需要关联查询数据的场景 需要

    2024年02月12日
    浏览(56)
  • NoSQL数据库介绍+Redis部署

    目录 一、NoSQL概述 1、数据的高并发读写 2、海量数据的高效率存储和访问 3、数据库的高扩展和高可用 二、NoSQL的类别 1、键值存储数据库 2、列存储数据库 3、文档型数据库 4、图形化数据库 三、分布式数据库中的CAP原理 1、传统的ACID 1)、A--原子性 2)、C--一致性 3)、I--隔

    2024年02月11日
    浏览(42)
  • 大数据NoSQL数据库HBase集群部署

    目录 1.  简介 2.  安装 1. HBase依赖Zookeeper、JDK、Hadoop(HDFS),请确保已经完成前面 2. 【node1执行】下载HBase安装包 3. 【node1执行】,修改配置文件,修改conf/hbase-env.sh文件 4. 【node1执行】,修改配置文件,修改conf/hbase-site.xml文件 5. 【node1执行】,修改配置文件,修改conf/regi

    2024年02月08日
    浏览(54)
  • 【NOSQL数据库】Redis数据库的配置与优化一

    关系型数据库是一个结构化的数据库, 创建在关系模型(二维表格模型)基础上 ,一般面向于记录。 SQL 语句(标准数据查询语言)就 是一种基于关系型数据库的语言 ,用于执行对关系型数据库中数据的检索和操作。 主流的关系型数据库包括 Oracle、MySQL、SQL Server、Microso

    2024年02月11日
    浏览(50)
  • NoSQL数据库使用场景以及架构介绍

    其它相关推荐: 系统架构之微服务架构 系统架构设计之微内核架构 鸿蒙操作系统架构 架构设计之大数据架构(Lambda架构、Kappa架构) 所属专栏:系统架构设计师 NoSQL(Not-onlySQL):不仅仅只是SQL,泛指非关系型的数据库。 是对关系型数据库的补充和完善,它不使用传统的表格

    2024年02月06日
    浏览(63)
  • 企业架构NOSQL数据库之MongoDB

    目录 一、背景描述及其方案设计 (一)业务背景描述 (二)模拟运维设计方案 二、Mongodb介绍 (一)nosql介绍 (二)产品特点 1、存储性 2、 效率性 3、结构  三、安装和配置 (一)安装方式介绍 (二)二进制可执行安装 1、上传安装包到服务器目录 2、 解压到安装目录 并移

    2024年02月14日
    浏览(55)
  • 【NOSQL数据库】Rdeis持久化

    在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务(如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据

    2024年02月12日
    浏览(62)
  • 常见数据库介绍对比之NoSQL非关系型数据库

    常见的非关系型数据库(NoSQL)包括以下几种: MongoDB: MongoDB是最受欢迎的文档型数据库之一。它使用BSON(二进制JSON)格式存储数据,并提供灵活的数据模型和复杂的查询功能。MongoDB支持水平扩展和高可用性,并具有丰富的生态系统和工具支持。 CouchDB: CouchDB是另一个流行的

    2024年02月09日
    浏览(43)
  • NoSQL数据库(林子雨慕课课程)

    5.1 NoSQL数据库 NoSQL兴起原因1:关系型数据库无法满足Web2.0的需求 很多非关系型数据可以作为关系型数据的补充,很多业务场景下需要用到非关系型数据库 NOSQL数据库特点 灵活的可扩展性:有非常强大的水平可扩展性,可以支持在多个机器上水平扩展 灵活的数据模型 和云计算

    2024年02月07日
    浏览(34)
  • 大数据NoSQL数据库HBase集群部署——详细讲解~

    HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。 和Redis一样,HBase是一款KeyValue型存储的数据库。 不过和Redis设计方向不同 Redis设计为少量数据,超快检索 HBase设计为海量数据,快速检索 HBase在大数据领域应用十分广泛,现在我们来在node1、node2、node3上部署H

    2024年02月11日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包