MongoDB学习1:认识文档数据库MongoDB
1. 关于MongoDB
| 什么是MongoDB | 一个以JSON为数据模型的文档数据库 |
| 为什么叫文档数据库 | 文档来自于“JSON Document”,并非我们一般理解的pdf,word文档 |
| 谁开发MongoDB | 上市公司 MongoDB Inc. 总部位于美国纽约 |
| 主要用途 | 应用数据库,类似于Oracle、MySql 海量数据处理,数据平台 |
| 主要特点 | 建模为可选 JSON数据模型比较适合开发者 横向扩展可以支撑很大数据量和并发 |
| MongoDB是免费的吗 | MongoDB有两个发行版本:社区版和企业版 社区版是基于SSPL,一种和AGPL基本类似的开源协议 企业版是基于商业协议,需付费使用 |
2. MongoDB版本变迁
| 0.x | 起步阶段 | 2008 |
| 1.x | 支持复制集和分片集 | 2010 |
| 2.x | 更丰富的数据库功能 | 2012 |
| 3.x | WiredTiger和周边生态环境,性能突破 | 2014 |
| 4.x | 分布式事务支持 | 2018 |
3. MongoDB vs 关系型数据库
| MongoDB | RDBMS | |
|---|---|---|
| 数据模型 | 文档模型 | 关系模式 |
| 数据库类型 | OLTP | OLTP |
| CRUD操作 | MQL/SQL | SQL |
| 高可用 | 复制集 | 集群模式 |
| 横向扩展能力 | 通过原生分片完善支持 | 数据分区或者应用侵入式 |
| 索引支持 | B-树、全文索引、地理位置索引、多键(multikey)索引、TTL索引 | B树 |
| 开发难度 | 容易 | 困难 |
| 数据容量 | 没有理论上限 | 千万、亿 |
| 扩展方式 | 垂直扩展+水平扩展 | 垂直扩展 |
4.MongoDB的优势
4.1 简单直观:以自然的方式来建模,以直观的方式来与数据库交互
传统关系型数据库关系复杂,难以梳理清晰,MongoDB对象模型一目了然
4.2 结构灵活:弹性模式从容相应需求的频繁变化
4.2.1 多形性:同一个集合中可以包含不同字段(类型)的文档对象
4.2.2 动态性:线上修改数据模式(如增加字段),修改时应用与数据库均无需下线
4.2.3 数据治理:支持使用JSON Schema来规范数据模式。在保证模式灵活动态的前提下,提供数据治理能力
3. 快速开发:做更多的事,写更少的代码
JSON模型之快速特性
3.1 数据库引擎只需要在一个存储区读写
3.2 反范式、无关联的组织极大优化查询速度
3.3 程序API自然,开发快速
4. 原生的高可用和横向扩展能力
4.1 Replica Set- 2 to 50个成员(建议3个及以上)
4.2 自恢复
4.3 多中心容灾
4.4 滚动服务-最小化服务终端
4.5 需要的时候无缝扩展
4.6 应用全透明
4.7 多种数据分部策略
4.8 轻松支持TB-PB数量级

5.在CentOS里安装MongoDB
5.1 下载MongoDB
进入MongoDB的下载中心 https://www.mongodb.com/try/download,选择MongoDB Community Server,选择合适的版本进行下载(MongoDB的正式版都是偶数版本如4.2、3.6等)
复制下载链接,在CentOS系统中使用wget下载
5.2 安装MongoDB
5.2.1 使用命令 tar -zxvf mongodb-linux-x86_64-rhel70-4.4.0.tgz 解压压缩包
5.2.2 将MongoDB路径加入环境变量里 export PATH=$PATH:/root/mongodb-linux-x86_64-rhel70-4.4.0/bin/
5.2.3 在控制台输入mongo或mongod如果有正常输出表示已经安装好了

MongoDB学习1:认识文档数据库MongoDB的更多相关文章
- MongoDB学习笔记一:MongoDB的下载和安装
MongoDB学习笔记一:MongoDB的下载和安装 趁着这几天比較空暇,准备学习一下MongoDB数据库.今天就简单的学习了一些MongoDB的下载和安装.并创建了存储MongoDB的数据仓库. 将 ...
- MongoDB学习笔记:Python 操作MongoDB
MongoDB学习笔记:Python 操作MongoDB Pymongo 安装 安装pymongopip install pymongoPyMongo是驱动程序,使python程序能够使用Mong ...
- MongoDB学习笔记(1):MongoDB简介
1. MongoDB的特点: (1) 易于使用 MongoDB是一个面向文档的数据库,非关系型数据库.通过在文档中嵌入式文档和数据,面向对象的方法能够仅使用一条记录来表现复杂的层次关系.文档的键和值不 ...
- MongoDB 学习(三)MongoDB 和 Spring 整合(Maven)
一.MongoDB 和 Spring 整合(Maven) 1.相关 jar 包准备 2.用 Maven 创建项目,pom.xml 文件 <project xmlns="http://m ...
- MongoDB学习笔记一:MongoDB基础
目录 MongoDB是什么? 学了有什么用? MongoDB入门 安装 修改数据库位置 MongoDB的启动方式 MongoDB的图形化工具 MongoDB基本命令 增 查询 更新 删除 排序 投影 ...
- MongoDB学习【一】—MongoDB简介和安装
一.MongoDB简介 1.MongoDB是什么 MongoDB是一款强大.灵活.且易于扩展的通用型数据库,MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的 ...
- MongoDB学习系列(3)--解决MongoDB Unexpected Shutdown问题
晚上准备继续学习PHP+MongoDB,点击Run_MongoDB_Service.bat文件,这个文件是我写的bat文件,就是快速启动MongoDB.但是命令行一闪而过,我很奇怪.昨天晚上写代码还是 ...
- [转]MongoDB学习 C#驱动操作MongoDB
下载驱动 驱动的下载有两种方式:一种是在C#项目中通过NuGet进行安装,另一种是通过下面的链接:https://github.com/mongodb/mongo-csharp-driver/rele ...
- MongoDB学习笔记(四) 用MongoDB的文档结构描述数据关系
MongoDB的集合(collection)可以看做关系型数据库的表,文档对象(document)可以看做关系型数据库的一条记录.但两者并不完全对等.表的结构是固定的,MongoDB集合并没有这个约束 ...
- 【MongoDB学习之二】MongoDB数据库、文档、集合、元数据
环境 MongoDB 4.0 CentOS6.5_x64 一.连接语法格式: mongodb://[username:password@]host1[:port1][,host2[:port2],.. ...
随机推荐
- html-webpack-plugin在html中插入数据
html-webpack-plugin在html中插入数据 <!DOCTYPE html> <html> <head> <meta charset=" ...
- 小程序开发全栈1.2/3/4组件、flex布局、样式
1.2 组件 1.2.1 text组件 编写文本信息,类似于HTTP中的span 1.2.2 view组件 容器,类似于HTTP中的div 1.2.3 image组件 图片显示组件 1.3 页面fle ...
- org.apache.commons.net.ftp.FTPConnectionClosedException: Connection closed without indication
Ftp问题 最近遇到了ftp读取中文乱码的问题,代码中使用的是FtpClient.google一下找到了解决方案. FTP协议里面,规定文件名编码为iso-8859-1,FTP类中默认的编码也是这个. ...
- MongoDB副本集部署
mongodb 副本集搭建 环境192.168.1.191 master192.168.1.192 slave,arbiterOS: ubuntu14.04mongodb: mongodb-l ...
- Html5 表单元素基础
表单元素 1.定义: 表单是提供让读者在网页上输入,勾选和选取数据,以便提交给服务器数据库的工具.(邮箱注册,用户登录,调查问卷等) 2.表单元素(下拉框,输入框……) 3.表单主结构: <fo ...
- Java基础单词总结
单词总结 Actualpayment --- 实际付款 Aggregatemount --- 合计金额 MemberPoints --- 会员积分 Management --- 管理 ...
- MacOS下ElasticSearch学习(第一天)
ElasticSearch第一天 学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"elasticsearch&q ...
- Python time asctime()方法
描述 Python time asctime() 函数接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07 ...
- PHP cal_from_jd() 函数
------------恢复内容开始------------ 实例 把儒略日计数转换为格利高里历法的日期: <?php$d=unixtojd(mktime(0,0,0,6,20,2007));p ...
- PHP is_dir() 函数
定义和用法 is_dir() 函数检查指定的文件是否是一个目录. 如果目录存在,该函数返回 TRUE. 语法 is_dir(file) 参数 描述 file 必需.规定要检查的文件. 提示和注释 注释 ...