MongoDB

MongoDB 是一个开源、跨平台、分布式文档数据库,属于 NoSQL(Not Only SQL)数据库的一种。

简单易用

MongoDB 是一个面向文档的数据库,使用文档(document)对象存储数据,这种方式比关系型数据库(RDBMS)中的数据行格式更加灵活。

文档可以支持在单个记录中表示复杂的层级关系。

MongoDB 不需要预定义模式结构(schema),可以更加方便快捷地增加或删除文档中的字段。

可扩展

随着数据量的增长,我们将会面临可扩展性的挑战。一般来说,扩展方式有两种:

  • 纵向扩展(Scaling up),升级服务器的资源(CPU、RAM 等)。
  • 横向扩展(Scaling out),为集群增加更多的服务器。这种方式比纵向扩展更加经济、可扩展性更好,缺点就是管理更加复杂。

MongoDB 天生具有横向扩展性。

MongoDB 可以将数据分布式存储到多个服务器中,同时可以自动管理跨节点的负载均衡,将数据操作路由到相应的服务器。下图演示了 MongoDB 使用 sharding 分片进行横向扩展的示意:

功能丰富

作为一个数据库管理系统,MongoDB 支持数据的插入、更新、删除以及查询。除此之外,MongoDB 还提供了以下功能:

  • 索引
  • 聚合
  • 指定集合与索引的类型
  • 文件存储

我们将会在后面的教程中详细介绍这些功能。

高性能

MongoDB 提供了高性能的数据存储,例如,嵌入式数据模型可以减少 I/O 操作,索引可以加速查询。

MongoDB 的理念就是创建一个可扩展、灵活且高性能的全功能数据库。

MongoDB 版本

MongoDB 提供了三种不同的版本:社区版、企业版以及云数据库(Atlas)。

MongoDB 社区版

MongoDB 社区版可以免费使用,支持 Windows、Linux 以及 macOS 平台。

MongoDB 社区版使用(SSPL) 许可证,意味着如果我们将 MongoDB 作为一个公共服务提供给其他人使用,必须开源支持该服务的软件代码,例如管理或者监控该服务的工具。否则,我们需要购买企业版。

如果我们使用 MongoDB 社区版作为应用程序的一个组件,而不是最终的产品,可以免费使用。

MongoDB 企业版

MongoDB 企业版是 MongoDB 的商业版本,也是 MongoDB 企业高级订阅的一部分。

MongoDB 企业版提供了很多社区版不支持的功能,例如:

  • 内存(In-Memory)存储引擎
  • 审计功能
  • Kerberos 认证
  • LDAP 代理认证和 LDAP 授权
  • 静态加密

MongoDB Atlas

MongoDB Atlas 是一个全球云数据库服务。它是一种数据库即服务(database as a service),可以让我们专注于应用开发,而不是管理数据库。

MongoDB Atlas 支持各种常见的云平台,包括 AWS、Azure 以及 GCP,国内的阿里云、腾讯云也提供了相应的服务。MongoDB Atlas 为个人提供了用于学习的免费数据库服务。

《MongoDB入门教程》第01篇 MongoDB简介相关推荐

  1. 《SQL 入门教程》第01篇 SQL 简介

    <SQL 入门教程>专栏目录 第01篇 SQL 简介 第02篇 查询初体验 第03篇 查询条件 第04篇 结果排序 第05篇 限定结果数量 第06篇 分组与汇总 第07篇 多表连接查询 第 ...

  2. MongoDB 入门教程实战学习笔记-31-mongo 聚合查询管道 Aggregation Pipieline

    aggregation 聚合操作处理数据记录并返回计算结果. 聚合操作将多个文档中的值组合在一起, 并且可以对分组数据执行各种操作以返回单个结果. mongodb 提供了三种执行聚合的方法: 聚合管道 ...

  3. 【ENVI入门系列】01.ENVI产品简介与入门

    [ENVI入门系列]01.ENVI产品简介与入门 (2014-09-22 10:18:21) 转载▼ 标签: 杂谈 分类: ENVI 版权声明:本教程涉及到的数据仅供练习使用,禁止用于商业用途. 目录 ...

  4. TurboLinux入门教程:第七课TurboLinux简介(转)

    TurboLinux入门教程:第七课TurboLinux简介(转) 第七课 TurboLinux简介 TurboLinux是拓林思公司最近发行的linux版本,已在日本和中国取得了巨大的成功,在美国也 ...

  5. ArcGIS for Desktop入门教程_第二章_Desktop简介 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第二章_Desktop简介 - ArcGIS知乎-新一代ArcGIS问答社区 1 Desktop简介 1.1 ArcGIS for Desktop ...

  6. Systemd 入门教程:实战篇

    Systemd 入门教程:实战篇 原文出处: 阮一峰(@ruanyf)   http://blog.jobbole.com/98671/?utm_source=blog.jobbole.com& ...

  7. Linux Capabilities 入门教程--进阶实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...

  8. Linux Capabilities 入门教程--基础实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...

  9. Systemd入门教程:命令篇

    Systemd入门教程:命令篇 转自:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html 作者: 阮一峰 日期: ...

  10. 深度学习小白入门教程-基础环境篇

    深度学习小白入门教程-基础环境篇 如有图片显示失败,请回小主主页查看~ Anaconda 安装包下载方式一:官网(科学上网比较慢,不推荐) 安装包下载方式二:清华镜像(推荐) 具体安装步骤(跟着箭头来 ...

最新文章

  1. 单片机开发工程师需要学哪些,单片机工作的基本条件
  2. 5G通信3大场景 来源:elecfans
  3. 2022年年底前山东将打造30个以上绿色数据中心 逐步淘汰高能耗中小型数据中心...
  4. Light-Head R-CNN相关资料
  5. linux时间路径,关于linux中的时间 时区问题
  6. mysql 备份脚本 linux,LINUX中MySQL如何按时备份脚本
  7. 线程安全与synchronized
  8. JavaScript之继承(原型链)
  9. React组件: 提取图片颜色
  10. SLAM--求解2D-2D图像间的运动
  11. CTF web题常用解题工具
  12. 9针串口RS232、RS485之间的差异
  13. littleVGL开发(11):任务系统(task)
  14. 嵌入式系统开发笔记2:Linux的主流发行版本
  15. Java如何进行Base64的编码(Encode)与解码(Decode)?
  16. 全新天龙八部:4年积攒更惬意的方法
  17. SOLIDWORKS有哪些你没用到,但十分好用的冷门小技巧?
  18. 时间运算函数 CATT_ADD_TO_TIME
  19. 计算机启动时检测硬盘,取消win7电脑开机检测硬盘的方法
  20. c++ 使用结构体实现有理数库

热门文章

  1. 实现一个家庭安防与环境监测系统(二)
  2. 非 Vue 相关技术总结
  3. bxslider 使用帮助
  4. 【分享】水晶报表多打印空白页的解决方法
  5. woddy 3.0笔记本安装经历(下)
  6. 道路千万条,为什么这家创新存储公司会选这条?
  7. UML之行为图(活动图、状态图、交互图)
  8. java之spring中时间戳转换时间方式
  9. 揭秘:网易运营、产品经理日常工作都在用的14大神器
  10. 【python】使用Antlr4实现识别sql中的表或视图名