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],.. ...
随机推荐
- nodejs--抓取页面的数据--图
感觉挺有意思,比php好玩 ----做个图留个 纪念
- Statezhong shiyong redux props
在构造方法中使用props给state赋值不允许, 原因需要检查
- Python之生成器、迭代器
生成器 生成器类似返回值为数组的一个函数,这个函数可以接受参数,可被调用,但只能产生一个值,所以大大节省内存. 生成器表达式的语法非常简单,只需要将列表推导式的中括号改成小括号就可以了 [x+x fo ...
- Linux阶段总结
Linux总结 一.学习心得: 在学习本阶段关于Linux阶段的课程时,让我对Linux有了一个大概的了解. 我了解到Linux操作系统是基于最初的Unix系统而开发出来的: 在学习Linux的时候, ...
- LQB20180航班时间(sscanf)
首先找找规律,两者相加除以二. 按格式读入sscanf 按格式输出printf("02d%",m);前导0 #include <iostream> #include & ...
- Django学习路30_view中存在重复名时,取第一个满足条件的
在 settings 中添加 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.con ...
- PHP 循环 - For 循环基础讲解
PHP 循环 - For 循环 循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块. for 循环 for 循环用于您预先知道脚本需要运行的次数的情况. 语法 for (初始值; 条件; ...
- Python os.fdatasync() 方法
概述 os.fdatasync() 方法用于强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更新文件的状态信息.高佣联盟 www.cgewang.com 如果你需要刷新缓冲区可以使用该方法. ...
- Python os.dup() 方法
概述 os.dup() 方法用于复制文件描述符 fd.高佣联盟 www.cgewang.com 语法 dup()方法语法格式如下: os.dup(fd); 参数 fd -- 文件描述符 返回值 返回复 ...
- PHP mb_substr() 函数
实例 从字符串中返回 "菜鸟": <?php echo mb_substr("菜鸟教程", 0, 2); // 输出:菜鸟 ?> 定义和用法 mb_ ...