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],.. ...
随机推荐
- Captura - 免费好用还开源的录屏软件
首先下载这个软件,国内下载很慢这里提供一个国内下载UCloud-OSS 软件打开后默认英文,现在我们切换到中午模式 在录制屏幕的同时获取声音
- JAVA集合四:比较器--类自定义排序
参考链接: HOW2J.CN 前言 对于JAVA集合,都能够用集合的工具类Collections 提供的方法: Collections.sort(List list) Collections.sort ...
- vue------反响代理
//测试项目 https://i.cnblogs.com/Files.aspx
- 面试题四十二:连续子数组的最大和,要求时间复杂度为 n
方法一:举例分析数组的规律,累加数组逐步保存最大值:累加中和<0,则遗弃前面的累加和:重新开始: int FindMaxArray(int [] A) { if(A= ...
- centos7 离线安装paramiko
离线安装paramiko 1. 利用yum下载paramiko依赖的rpm软件包 安装yum-utils yum -y install yum-utils yumdownloader python ...
- PHP array_keys() 函数
实例 返回包含数组中所有键名的一个新数组: <?php$a=array("Volvo"=>"XC90","BMW"=>&q ...
- PHP localtime() 函数
------------恢复内容开始------------ 实例 以一个数值数组和一个关联数组的形式输出本地时间: <?phpprint_r(localtime());echo "& ...
- 问题记录,php webserver端跨子域setcookie后浏览器不存
如题. path已设置成/,domain也已指定成父级域名,数据包response中可见Set-Cookie header为期望的cookie数据,但浏览器就是不接收.存储该cookie, 浏览器端也 ...
- angularjs脏检查
angularjs实现了双向绑定,与vue的defineProperty不同,它的原理在于它的脏检查机制,以下做了一些总结: angular.js介绍 AngularJs是mvvm框架,它的组件是vm ...
- JAVA设计模式 5【结构型】代理模式的理解与使用
今天要开始我们结构型 设计模式的学习,设计模式源于生活,还是希望能通过生活中的一些小栗子去理解学习它,而不是为了学习而学习这些东西. 结构型设计模式 结构型设计模式又分为 类 结构型 对象 结构型 前 ...