MongoDB 简单介绍
MongoDB介绍
| 疑问 | 解答 |
|---|---|
| 什么是 MongoDB | 一个以 JSON 为数据模型的文档数据库 |
| 为什么叫文档数据库? | 文档来自于 “JSON Document”,并非我们一般理解的 PDF,WORD 文档 |
| 谁开发 MongDB? | 上市公司 MongoDB Inc. ,总部位于美国纽约。 |
| 主要用途 | 应用数据库,类似于 Oracle,MySQL 海量数据处理,数据中台 |
| 主要特点 | 建模为可选 JSON 数据模型比较适合开发者 横向扩展可以支撑很大数据量和并发 |
| MongoDB 是免费的吗? | MongoDB 有两个发布版本:社区版和企业版。 社区版是基于 SSPL,一种和 AGPL 基本类似的开源协议 企业版是基于商业协议,需付费使用 |
MongoDB VS 关系型数据库
| MongoDB | RDBMS | |
|---|---|---|
| 数据模型 | 文档模型 | 关系模型 |
| 数据库类型 | OLTP | OLTP |
| CURL 操作 | MQL/SQL | SQL |
| 高可用 | 复制集 | 集群模式 |
| 横向扩展能力 | 通过原生分片完善支持 | 数据分区或者应用侵入式 |
| 索引支持 | B-树、全文索引、地理位置索引、多键(multikey)索引、TTL索引 | B 树 |
| 开发难度 | 容易 | 困难 |
| 数据容量 | 没有理论上限 | 千万、亿 |
| 扩展方式 | 垂直扩展+水平扩展 | 垂直扩展 |
MongoDB 优势:面向开发者的易用+高效数据库
- 简单直观:以自然的方式来建模,以直观的方式来与数据库交互
- 结构灵活:弹性模式从容响应需求的频繁变化
- 原生的高可用
- Replica Set - 2 to 50 个成员
- 自恢复
- 多中心容灾能力
- 滚动服务 - 最小化服务终端
- 横向扩展能力
- 需要的时候无缝扩展
- 应用全透明
- 多种数据分布策略
- 轻松支持 TB - PB 数量级
- 快速开发:做更多的事,写更少的代码
- 数据库引擎只需要在一个存储区读写
- 反范式、无关联的组织极大优化查询速度
- 程序 API 自然,开发快速
灵活:快速响应业务变化

- 多形性:同一个集合中可以包含不同字段(类型)的文档对象
- 动态性:线上修改数据模式,修改是应用与数据库均无须下线
- 数据治理:支持使用 JSON Schema 来规范数据模式。在保证模式灵活动态的前提下,提供数据治理能力。
MongoDB 技术优势总结
- JSON 结构和对象模型接近,开发代码量低
- JSON 的动态模型意味着更容易响应新的业务需求
- 复制集提供 99.999% 高可用
- 分片架构支持海量数据和无缝扩容
MongoDB 全家桶
| 软件模块 | 描述 |
|---|---|
| mongod | MongoDB 数据库软件 |
| mongo | MongoDB 命令行工具,管理 MongoDB数据库 |
| mongodump/mongorestore | MongoDB路由进程,分片环境下使用 |
| mongoexport/mongoimport | 命令行数据库备份与恢复工具 |
| Compass | MongoDB GUI 管理工具 |
| Ops Manager(企业版) | MongoDB 集群管理软件 |
| BI Connector(企业版) | SQL解释器/BI套接件 |
| MongoDB Charts(企业版) | MongoDB 可视化软件 |
| Atlas(付费及免费) | MongoDB 云托管服务,包括永久免费云数据库 |
MongoDB 模型设计基础
数据模型大的三要素
- 实体
- 属性
- 关系
数据模型的三层深度
- 概念模型
- 逻辑模型
- 物理模型
一个模型逐步细化的过程
MongoDB 简单介绍的更多相关文章
- Mongodb简单介绍安装
具体详细内容,请查阅 Mongodb官方文档 一.简单介绍 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. M ...
- Mongodb简单介绍
1. 简单介绍 Mongodb是一种强大.灵活,可扩展的数据存储方式.属于nosql.非关系型数据库的一种. mongodb是面向文档的数据库. 尽管是非关系型数据库.可是它保留了很多关系型数据库的特 ...
- mongoDB简单介绍及安装
近期一段时间对mongoDB进行了简单的学习,从它是什么?干什么?怎么用?优缺点?这一系列的疑问到如今可以简单运用.我想须要对其进行简单的总结和概述.那么这一篇就从最基础的開始,对其主要的概念和安装来 ...
- MongoDB(1)--简单介绍以及安装
前段时间接触了NoSql类型的数据库redis,当时是作为缓存server使用的.那么从这篇博客開始学习还有一个非常出名的NoSql数据库:MongoDb.只是眼下还没有在开发其中使用.一步一步来吧. ...
- mongodb基础整理篇————简单介绍[一]
前言 简单介绍一下文档数据库. 正文 mongodb 是一个以json为数据模型的文档数据库. 这里要介绍一下什么是json.因为有些人认为'{a:1,b:2}' 是json,而"this ...
- mongodb 简单部署方案及实例
mongodb 简单部署方案及实例 转载:http://my.oschina.net/zhuzhu0129/blog/53290 第一节 准备工作 一 安装mongodb 我这里选用rehl 5.6 ...
- MongoDB应用介绍之前
MongoDb企业应用实战(一) 写在MongoDB应用介绍之前 故事背景: 本人有幸,经老友( 现为x知名快递公司技术总监 ) 推荐进入中国前三大民营快递公司之一工作,在此非常感谢他,在此也非常 ...
- 第一篇:SpringBoot2.0简单介绍
距离Spring Boot1.0发布已经4年了,今年3月份SpringBoot2.0正式发布.让我们一起来了解一下它. Spring Boot主要依赖于Spring,整合了很多框架的使用方式,帮助开发 ...
- MongoDB shell 介绍
MongoDB shell 介绍 MongoDB自带javascript shell, 可在shell中使用命令行与MongoDB实列交互.shell可以执行管理操作,检查运行实列等等操作. 一:如何 ...
- MongoDB分片介绍
本文简单介绍MongoDB的分片功能,对分片进行了概述,具体的功能详解,后续文章会陆续推出 分片是把数据分配到多个服务器上的一种方式,MongoDB使用分片实现大数据部署以及高吞吐操作. 大数据以及高 ...
随机推荐
- Qt数据库应用12-通用数据库清理
一.前言 很多项目如果需要存储很多日志记录比如运行日志,时间长了记录数量非常多,数据库体积不断增大,对应数据库表的增删改查的效率不断降低,为了消除这几个影响,需要有一套机制,不断将早期的数据清理,清理 ...
- Qt编写地图综合应用43-点聚合
一.前言 点聚合的出现就是为了减少一个可视区域内,密密麻麻绘制的太多的标注点.在地图上查询结果通常以标记点的形式展现,但是如果标记点较多,不仅会大大增加客户端的渲染时间,让客户端变得很卡,而且会让人产 ...
- Qt编写地图综合应用33-雨量分布
一.前言 雨量分布图是在区域地图基础上,针对区域中的每个最小单位区域比如县城点位不同颜色显示,最开始做这个封装的时候,并没有提供单独设置每个点颜色的接口,后面经过几个客户的强烈建议,咬咬牙把每个点都可 ...
- Qt通用方法及类库7
函数名 //int转字节数组 static QByteArray intToByte(int i); static QByteArray intToByteRec(int i); //字节数组转int ...
- rysnc使用手册
rsync 是一个用于在本地和远程计算机之间同步文件和目录的命令行工具.它具有许多强大的功能,包括增量传输.压缩和保留权限等.以下是一些 rsync 的常用选项和用法示例: 基本用法 rsync [O ...
- NetCore开源项目,适合新手学习
VerEasy.Core 介绍 这是一个基于 .NET Core 的易开发的框架,附 vue3前端框架.提供了一个高效可扩展的API程序. 支持 JWT 认证.数据库操作.日志记录.异步处理等特性,能 ...
- AI对开发过程的替代性
在过去一年投入人工智能辅助开发之后,虽然大家说使用了人工智能之后工作效率显着提高,但我们日常使用的实际软件似乎并没有明显改善.所以问题出现在哪里? 使用场景 目前团队AI使用主要在以下方面: 代码补全 ...
- 前端学习openLayers配合vue3(面的绘制,至少三个点)
我们学习了点和线的绘制,当然我们也可以绘制一个面 关键代码,需要注意的一点就是面的绘制需要三维数组,线的绘制是个二维数组 const polygonLayer = new VectorLayer({ ...
- jdk8之stream原理及流创建、排序、转换等处理
目录 一.为什么需要 Stream 二.什么是流 三.流的分类 1.有多种方式生成 Stream Source 2.流的操作类型 四.流的创建 1.数组和集合创建流 2.基本数值型流 3.数值流的构造 ...
- 解决线程安全问题的方式三:Lock锁 --- JDK5.0新增
Lock( 锁) 从JDK 5.0开始,Java提供了更强大的线程同步机制--通过显式定义同步锁对象来实现同步.同步锁使用Lock对象充当. java.util.concurrent.locks. ...