继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第19天 入门MongoDB

userqiao
关注TA
已关注
手记 35
粉丝 1
获赞 2

课程名称:Spring Cloud 进阶 Alibaba 微服务体系自媒体实战
课程章节: 第5章 Admin 平台运营管理中心服务
主讲老师: 风间影月


课程内容

基础概念

MongoDB 是非关系型数据库,也就是nosql,存储json数据格式会非常灵活,要比数据库mysql/MariaDB更好,同时也能为mysql/MariaDB分摊一部分的流量压力。

对于经常读写的数据他会存入内存,如此一来对于热数据的并发性能是相当高的,从而提升整体的系统效率。

另外呢,对于非事务的数据完全可以保存到MongoDB中,这些数据往往也是非核心数据。

一般来说,我们可以把一些非重要数据但是读写却很大的数据存储在MongoDB,比如我们自己的物流运输的车辆运行轨迹,GPS坐标,以及大气监测的一些动态指标等数据。又或者说咱们实战中的友情链接,友情链接在首页,这数据本身不重要,但是在首页里会经常被读到,并发读很大,所以放mongoDB中没毛病。

此外,mongodb提供的gridfs提供小文件存储,可以自己把控接口读取的权限,这一点也是有优势的,比如存储一些身份证信息啊,人脸信息啊都是可以的。


以下是MongoDB和数据库以及ElasticSearch(es没接触过的,待后续整合es后可以回过头来对比看看)的术语对比:

数据库

ElasticSearch

MongoDB

database

es库

database

table 表

index 索引

collection 数据集合

row 行(记录)

document 文档(json)

document 文档(json)

column 字段列

field 域

field 域

index 索引

-

index 索引

join 表关联查询

-

-

pk 主键

_id

_id

  • MongoDB可以创建多个数据库(同mysql)

  • 一个数据库可以创建多个collection(同mysql创建多表)

  • 一个集合可以包含很多文档数据(同mysql一张表包含很多行记录)

我们可以通过如下代码片段来更好的理解MongoDB的数据对比,假设这张表中总记录有3条:

UserList: [
	{
		userId: "1001",
		username: "lee",
		age: 18,
		sex: "boy"	
	},
	{
		userId: "1002",
		username: "jay",
		age: 20,
		sex: "boy"	
	},
	{
		userId: "1003",
		username: "jolin",
		age: 19,
		sex: "girl"	
	}
]

如上述代码中:

  • UserList是一个collection,在mysql中可以当做是一张表

  • UserList中的每个{}都是一个json对象,他们称之为document文档,在mysql中称之为行记录

  • userId、username、age、sex 这些都是field 域,在MySQL中称之为column列字段

课程收获


MongoDb的主要特点:

  • MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。

  • 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。

  • 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。

  • 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。

  • Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。

  • MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。

  • Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。

  • Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。

  • Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。

  • GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。

  • MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。

  • MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。

  • MongoDB安装简单。


课程截屏

http://img1.sycdn.imooc.com/632f18bb000142be16940947.jpg

http://img3.sycdn.imooc.com/632f18cf0001d23716710924.jpg

http://img1.sycdn.imooc.com/632f18e50001bc6017130913.jpg

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP