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],.. ...
随机推荐
- Linux 后台启动 Redis
1. 修改 redis.conf 首先,这里有一个坑 ! 不同的 redis版本,在安装的时候,redis.conf 的路径稍微有些不同 redis.conf 可能出现的三个位置: /etc/redi ...
- 尝鲜刚发布的 SpringFox 3.0.0,以前造的轮子可以不用了...
最近 SpringFox 3.0.0 发布了,距离上一次大版本2.9.2足足有2年多时间了.可能看到这个名字,很多读者会有点陌生.但是,只要给大家看一下这两个依赖,你就知道了! <depende ...
- 干货分享丨玩转物联网IoTDA服务系列五-智能家居煤气检测联动
摘要:该场景主要描述的是设备可以通过LWM2M协议与物联网平台进行交互,用户可以在控制台或通过应用侧接口创建设备联动规则,把设备上报的属性转发,通过物联网平台规则引擎转变成命令下发给其他指定设备. 场 ...
- PWN头秃之旅 - 4.Retrun-into-libc(攻防世界-level1)
Retrun-into-libc,也写作Retrun2libc.libc是Linux下的ANSI C的函数库,包含了C语言最基本的库函数. Retrun2libc的前提是NX开启,但ASLR关闭,NX ...
- Crossword Answers -------行与列按序输出
题目链接:https://vjudge.net/problem/UVA-232#author=0 题意:关键句:The de nitions correspond to the rectangular ...
- xss原理绕过防御个人总结
xss原理 xss产生的原因是将恶意的html脚本代码插入web页面,底层原理和sql注入一样,都是因为js和php等都是解释性语言,会将输入的当做命令执行,所以可以注入恶意代码执行我们想要的内容 x ...
- 大数据框架Hive优化方法
常规调优手段 Fetch抓取 某些情况查询不必用MapReduce计算,比如select*,可以直接读取文件 本地模式 有时数据量比较小,hive可以通过本地模式在单台机器上处理所有任务,对于小数据集 ...
- 跟老刘学运维day02~新手必须掌握的Linux命令(2)
第2章 Linux命令 1.Shell 计算机硬件:由运算器.控制器.存储器.输入/输出设备等共同组成 Shell:人与硬件的翻译官,人要想使用硬件,需要服务程序 Bash四大好处: (1)通过上下方 ...
- python可变与不可变数据类型+深浅拷贝
转自:https://www.cnblogs.com/miaomiaokaixin/p/11497813.html 一:学习内容 python3中六种数据类型 python赋值 python浅拷贝 p ...
- linux虚拟机正常安装完成后获取不到IP的解决办法-网卡
通常正常情况下安装完linux虚拟机,只需要使用桥接并修改配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,将如下参数值改为如下: ONBOOT=yes NM ...