MongoDB 是什么?优点、特色、应用一次了解!

资料库在数位时代扮演了举足轻重的角色,无论是个人还是企业都需要资料储存、快取、搜寻索引、非同步处理和批次处这些功能。目前有许多不同种的资料库和资料管理系统,其中 MongoDB 越来越受到知名国际企业欢迎。但 MongoDB 的优势是什么?MongoDB 可以如何提升企业效率呢?让我们一起一探究竟,好好了解 MongoDB 吧!

MongoDB 是什么?

MongoDB 是一种开源的文件导向资料库,採非关联式的设计。看完这个定义,你可能有了更多问题。开源?文件导向?非关联式?这些又是什么意思呢? 有非关联式资料库 (NoSQL) 的话,那很显然也有关联式资料库 (RDBMS)。我们先一起来了解这两种资料库的差别吧!

关联式资料库 (RDBMS)

在关联式资料库里,物件以关联模型的方式储存----依照资料彼此之间的关係存放。在建立关联式资料库之初,就要预先设定好资料库纲要(Schema) 以及资料表间的关係。从1980年代开始后的25-30年间,关联式资料库为市场主流。大多数需要储存和查询资料的人都在使用关联式资料库和 SQL (Structured Query Language)。其中 MySQL 就是传统关联模型的的着名例子。

非关联式资料库 (NoSQL)

非关联式资料库的英文 NoSQL 指的是 Not Only SQL,亦即任何不是单纯关联式资料库,包括了非关联式资料库的资料管理系统和关联式资料库和非关联式混合的资料库。文件导向是非关联式资料库里中常见的资料储存、检索和管理的方式,採用半结构化模型。相比于关联式资料库,文件导向的资料库不需要设定资料库纲要 (Schema)。非关联式资料库因为更简便和自由的使用方式和扩充能力大受欢迎,2007年开发的 MongoDB 就是其中一种 NoSQL 资料库。MongoDB SQL 比较图

MongoDB 特色

选择资料库的时候,最重要的就是考虑资料库的的特色和自己的需求是否符合。Mongo DB 有以下特色:

灵活储存便于更改强大的查询功能高性能安装容易

灵活文件储存

文件导向的 MongoDB 可以接受各种不同结构的资料。採用高弹性的 JSON 结构,MongoDB 不需要资料库纲要,可以串连不同性质的物件。

便于更改

过往在更动资料库时,需要先暂时关闭网站或是应用程式。但 MongoDB 就是为了方便更改资料结构而诞生的。使用 MongoDB,可以不需关闭网站或应用程式就在资料库里添增新的资料。

强大的查询功能

资料库除了容量大让我们储存各式文件以外,更重要的就是需要的时候找的到资料。MongoDB 的设计让资料容易存取,无需透过 joins 或 transactions 即可查询资料。搭配 MongoDB Query API 甚至可以以简单的程式码进行複杂的资料分析。

高性能

在文件导向的 MongoDB 里,资料可以嵌入在一个文件中。查询资料因此变得更加快速。另外,MongoDB的insertMany 和 updateMany 功能也让 MongoDB 比传统的关联式资料库在同时插入或更新多个档案时更佳方便。

安装容易

MongoDB Atlas 的简单介面让你可以轻鬆在云端搭建 MongoDB 丛集。当然也可以搭建 MongoDB 在你自己的伺服器,或创建 MongoDB 容器。

MongoDB 支援语言

MongoDB 本身是用 C++ 语言所写的,但作为最受欢迎的 NoSQL 资料库,MongoDB 正式支援的语言有12种:

CC++C#GoJavaNode.jsPHPcPythonRubyRustScalaSwift

如果想在 MongoDB 上使用其他的程式语言,MongoDB 社群也有人开发函式库和驱动程式让 MongoDB 可以跟几乎所有的程式语言相容。同时如果要在同一个应用程式里使用不同的程式语言,MongoDB 也是没问题的!

MongoDB vs MySQL

看了这么多关于 MongoDB 的介绍,还是不确定哪一种资料库更适合自己吗?如果你还在考虑要用 RDBMS 还是 NoSQL 资料库,可以从以下的角度思考你的需求。

适合使用 NoSQL/MongoDB 的情境有:

小型的专案,想要快速搭建资料库需要快速读取资料没有明确的资料库纲要 (Schema)不需用到连接 (Join) 功能查询资料资料之间的关联不複杂

适合使用 RDBMS/MySQL 的情境有:

有明确的资料库纲要 (Schema)需要有效率的查询资料需要可以準确操作资料资料操作的一致性相当重要资料之间的关联很重要预测未来会需要用到连接 (Join) 功能查询

当然,在选择资料库的时候,还有很多其他需要考虑的地方,尤其是要使用资料库的应用程式是为了解决什么问题打造的、会使用什么系统设计、未来需要扩充吗、会使用多少资源等。这些都是在选择资料库时,重要的考量。

MongoDB 应用

零售业

可处理属性不同的资料和快速查询的 MongoDB 适合用来储存目录资料和管理订单资料,例如使用者帐户、产品目录、IoT 装置注册及材料表系统。 这项资料的属性可能会有所不同,而且可以随时间变更,以符合应用程式需求。 使用 MongoDB的产品包含:Windows 市集和 XBox Live等。

金融业

MongoDB 也可以用在金融业的各种资料储存情境中,例如开放银行、eKYC 或即时客户分析等。英国银行Nationwide Building Society (NBS) 便是 MongoDB 资料库的使用者。

製造业

製造业更可以透过 MongoDB 提高效率,即时做出最好的决策。MongoDB 可以让供应链变得更加可见易懂,也可以让你结合 IT 和 OT 的数据,即时作出分析。Toyota 和 Volvo 都在使用 MongoDB,让生产製造更聪明。

云端 MongoDB

MongoDB 资料库可以搭建在自己的伺服器或是硬体上,也可以建置在各个云上。

原文来源:https://reurl.cc/gZ6RXX


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章