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],.. ...
随机推荐
- Java常用开源库
Java的经久不衰,很大程度上得益于Java的生态好.在日常开发中,我们也会经常使用到各种开源库和工具类,为了避免重复造轮子,本文将贴出工作及学习中会用到的部分开源库和工具类.Java的生态实在太大, ...
- 【翻译】Scriban README 文本模板语言和.NET引擎
scriban Scriban是一种快速.强大.安全和轻量级的文本模板语言和.NET引擎,具有解析liquid模板的兼容模式 Github https://github.com/lunet-io/sc ...
- 6.ALOHA协议
动态媒体接入控制/多点接入特点:信道并非在用户通信时固定分配给用户. 一.纯ALOHA协议 纯 ALOHA协议思想:不监听信道,不按时间槽发送,随机重发.想发就发 二.时隙ALOHA协议 时隙 ALO ...
- python多进程之multiprocessing
什么是多进程? 简单的理解:单板上运行的一个程序就是一个进程.进程是操作系统分配资源的最小单位,不同的进程之间资源不共享,进程间通信需要使用特定的方式.python提供了自带的multiprocess ...
- Shell基本语法---处理海量数据的sed命令
sed命令 shell脚本三剑客之一 处理时,把当前处理的行存储在临时缓冲区中,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到 ...
- 题解 CF917D 【Stranger Trees】
生成树计数问题用矩阵树定理来考虑. 矩阵树定理求得的为\(\sum\limits_T\prod\limits_{e\in T}v_e\),也就是所有生成树的边权积的和. 这题边是不带权的,应用矩阵树定 ...
- Repeating Decimals UVA - 202---求循环部分
原题链接:https://vjudge.net/problem/UVA-202 题意:求一个数除以一个数商,如果有重复的数字(循环小数),输出,如果没有,输出前50位. 题解:这个题一开始考虑的是一个 ...
- 宿主机连接docker中的mysql
宿主机连接docker中的mysql dokcer安装mysql docker run \ --name mysql \ -v $PWD/mysql:/var/lib/mysql \ -p 330 ...
- Android存储--SharedPreferences
简介 在Android中,主要有以下几种存储方式: SharedPreferences,在键值对中存储私有原始数据. 内部存储,在设备内存中存储私有数据. 官方示例: String FILENAME ...
- Django学习路
1.脚本不能随便运行,没准 linux 运行完就上不去了 2.pip 在 linux 上 写 pip3 同理 python 写为 python3 3.在 pycharm 上安装库之后,在命令提示符中依 ...