一、认识MongoDB数据库

一、MongoDB概况

​ 前言:本节笔者带各位伙伴了解MongoDB的概述情况,MongoDB的版本和特点等,各位读者可以了解到MongoDB数据库的使用场景和应用业务场景。

1. MongoDB概述

​ NOSQL:(NoSQL全名:Not Only SQL,意思为“不仅仅是SQL”),NoSQL是对不同于传统关系数据库的数据库管理系统的统称。

​ MongoDB 是一个基于分布式文件存储的NoSQL数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

​ 从数据库的发展开始就有了NoSQL数据库,在上世纪90年代到2010年之间,世界上最流行的数据库依然是关系型数据库,并且围绕着关系型数据库开发出了大量的程序应用,又随着移动技术(云计算、大数据)的发展,很多公司不愿意去使用大型的厂商数据库 —— Oracle等,因为这些人已经习惯于使用MySQL数据库,这些人发现在大数据以及云计算的环境下,数据存储受到了很大的挑战,后来就开始重新进行了NoSQL数据库的开发,但是经过长期的开发发现NoSQL数据库依然不可能离开传统的关系型数据库。

​ 传统的关系型数据库一定存放大量的冗余数据,导致查询效率降低,脏数据较多,不合理;而MongoDB数据库中,可以直接在业务层中的数据(一般为JSON)交给NoSQL数据库保存,按照指定的结构(人为定义)进行存储。

2. MongoDB和关系型数据库的对比

在MongoDB数据库之中与Oracle数据库有如下的概念定义:

No. 关系型数据库 NoSQL数据库(MongoDB)
1 数据库 数据库(类似于MySQL)
2 集合
3 文档
4 成员
5 主键 Object ID(自动维护)

3. MongoDB的特点

​ 1、面向集合的存储过程;

​ 2、模式自由(无模式);

​ 3、方便的进行数据的存储扩充;

​ 4、支持索引;

​ 5、支持短暂数据保留;

​ 6、具备完整的数据库状态监控;

​ 7、基于BSON应用;

4. MongoDB版本

​ mongodb截止发布最新开发版本为4.4.0,文档版本为V4.2.6。V4.2主要特性如下:

  • 全文搜索

    MongoDB 4.2 之前,全文搜索(Full Text Search)的能力是靠 Text Index 来支持的,在 MongoDB-4.2 里,MongoDB 直接与 Lucene 等引擎整合,在 Atlas 服务里提供全文建索的能力。

  • 分布式事务

    目前具备这个能力的开源数据库本身也不多,MongoDB 采用二阶段提交的方式(细节以后再分析),实现在多个 Shard 间发生的修改,要么同时发生,要么都不发生,保证事务的 ACID 特性。

  • Index 能力增强(Wildcard Index)

    MongoDB 4.2 引入 Wildcard Index,可以针对一系列的字段自动建索引,满足丰富的查询需求。

  • Field Level Encrytion

    MongoDB 除了支持 SSL、TDE 等安全机制,在 4.2 引入「字段级加密」的支持,实现对用户JSON文档的Value 进行自动加密。整个过程在 Driver 层完成,传输、存储到服务端的文档Value都是密文,MongoDB 4.2 Drvier 支持丰富的加密策略,可以针对集合、字段维度开启加密,加密过程对开发者完全透明。

  • 通过单个 Kubernetes 平面实现完全控制

    Kubernetes 是工业级的容器编排管理平台,可以使用 Kubernetes 管理 MongoDB 集群的整个生命周期,但随着业务部署环境越来越复杂多样化,有的可能是私有云部署、有的是公有云的部署,使得集群的管理难度也越来越高。

  • MongoDB Chart

    MongoDB Chart 在去年的 MongoDB World 已经介绍过了,今年有做了多方面的增强,算得上是一个功能比较完备的 BI 分析工具了。有了 Charts,MongoDB 也无需支持 SQL 来去对接 BI 工具了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。