面向文档的数据库以其性能和高水平可扩展性给人留下深刻印象

什么是 MongoDB?MongoDB 是一个基于非关系文档模型的数据库。因此,作为所谓的NoSQL 数据库(NoSQL = Not-only-SQL),它与传统的关系数据库如OracleMySQLMicrosoft SQL Server有着根本的区别。MongoDB这个名字来源于英文单词“humongous”,大致意思是“巨大的”。MongoDB 于 2009 年由创始人兼开发人员 Eliot Horowitz 发布,他于 2020 年卸任首席技术官和 MongoDB Inc. 董事会成员,但仍以技术顾问的身份活跃。
您可以在我们的网站上找到关于此主题的带有“数据库系统连接”标题的特殊视频教程流

MongoDB 图标

1.工业环境中的数据库使用

面向文档的 NoSQL 数据库 MongoDB与传统 SQL 数据库的概念差异可以在以下示例中进行解释。

在塑料零件的销售办公室中,关系数据库用于客户管理,例如,将客户数据存储在由行和列组成的 Excel 表格中。我们先来看这个系统的一小部分,客户的联系信息。它可以从一个简单的表格开始,每个表格包含一行代表每个客户。这一行有一个唯一的客户 ID 号、名字和姓氏、电子邮件地址、电话号码和公司地址。

现在,如果我们想为客户添加第二个电话号码怎么办?

对于工作号码和手机号码,甚至是紧急联系电话,我们可以简单地添加更多列。多个地址可能会出现同样的问题,例如,如果客户希望将样品发送到他们的家庭办公室。此外,以前的地址或塑料部件首选特殊颜色的信息可能是您可能仍然需要的信息。您现在只需为所有客户的联系信息添加更多列。最终你会得到一个臃肿的、大部分是空的、低效的表,因为许多字段没有被许多其他客户使用。

使用 MongoDB 在工业环境中使用数据库

相反,当然,如果需要额外的数据,可以在我们的 Excel 模型中创建新的电子表格。所以这里有一个新的单独的电话号码表,每行只包含一个电话号码,它指的是客户 ID 并标有“私人”、“工作”或“移动”等标签。可以用这种方式为地址等创建另一个工作表。

人们会创建大量表格来查看单个客户,而这里甚至没有考虑订单历史记录或发票归档。您可以猜想在这种严格的模式下工作会多快失控。然而,这就是开发人员在实际应用程序中处理这些基于表的关系数据库中数据的方式。

MongoDB:关系数据库中的数据



1.1 关系数据库中的数据

单个事物(如客户)的数据通常分布在数十个表格和工作表中。这显着增加了应用程序的复杂性并导致了一些缺点。

关系数据库的缺点:

  1. 复杂性
    对于维护应用程序的用户来说,很难理解复杂和多层次的结构。
  2. 添加新功能
    添加功能更加困难,因为例如,对于交叉引用,需要考虑更多的表格和工作表。
  3. 检索
    数据 从这么多地方检索数据效率低下,应用程序需要复杂的编程代码来处理它。

想象一下,如果我们将这个例子转移到现实世界中,销售代表必须从一个文件夹中检索姓名,从另一个文件夹中检索电话号码,并从第三个文件夹中检索地址。您可以想象那将是多么复杂、容易出错和缓慢。




1.2 MongoDB是如何解决问题的?

MongoDB 现在采用完全不同的“无模式”方法。数据存储在所谓的“文档”中。

就像悬挂文件中的物理客户文件一样,一个文件可以包含两个地址、三个电话号码和其他信息,例如个人培训视频。它可以存储在另一个仅包含电话号码、地址且还没有订单的客户文档旁边。这些文档不限于具有相同数量的列文档或数据字段。

MongoDB 数据存储在所谓的文档中

MongoDB 将多个文档分组为“集合”,其中数据库可以包含多个。

IT 可以更有效地处理以这种方式构建的数据,当然,这些文档也更容易让人阅读。这种类型的数据存储对开发人员来说非常有益,因为他们不再需要根据数据库的要求调整应用程序。使用 MongoDB,应用程序可以以自然方便的方式存储数据。这也意味着可以添加新数据,而不必担心简单的更改会导致数据库记录变得不可读。

MongoDB 在集合中组合了多个文档



1.3 与传统数据库的区别

除了文档模型之外,MongoDB 与传统数据库有着根本的区别,因为它的功能允许 MongoDB 协调多个服务器来存储数据。

这使得 MongoDB 成为一个分布式数据库,并使其能够提供开发人员必须自己创建的容错性、可扩展性和数据可用性功能,从而可以节省风险和劳动力。

  1. 容错性
    为了保证工作中的容错性,相同数据的冗余副本保存在不同的服务器上。单台服务器故障不影响应用。
  2. 可扩展性
    MongoDB 可无缝扩展到多个服务器以存储和处理数据。因此数据量和性能要求增加。您可以简单地添加更多服务器,而不是升级昂贵的大型机。这也非常适合负载分布在多台计算机上的云环境。
  3. 数据可用性
    数据可在世界各地的用户附近本地获取,以便快速访问。

MongoDB 文档模型和分布式系统组件的结合使 MongoDB 比关系数据库更具优势。

此外,“Mongo”公司还提供管理工具,允许数据库操作员监督MongoDB集群的配置、监控、备份、恢复和更新。这对于使 MongoDB 适合最苛刻的用例以及具有严格 SLA(服务水平协议)和操作要求的组织至关重要。




2. 云中的 MongoDB 和服务

MongoDB 是为云开发的,并且已经在那里广泛使用了一段时间。

然而,越来越多的用户也有兴趣使用作为“服务”提供的组件来创建他们的应用程序。为了满足这种需求,“MongoDB Atlas”作为服务产品发布。Atlas 允许用户将MongoDB 作为服务使用,而不必担心管理数据库。MongoDB Atlas可在领先的云平台 AWS(亚马逊网络服务)、Microsoft Azure 和谷歌云平台上使用。这提供了选择公共云提供商的灵活性,而无需供应商锁定且无需重写代码。这些创新正在推动越来越多的公司采用 MongoDB 平台。




3. 如何在 Windows 10 上安装 MongoDB?

在本教程中,我们将介绍 MongoDB 的安装和基本配置,即使没有背景知识的初学者也可以通过这个分步指南在 Windows 10 上安装数据库。

3.1 下载

请打开您的互联网浏览器并转到页面“ www.mongodb.com ”。

单击右上角的绿色“免费试用”按钮。

在接下来的页面上,选择“本地”,然后选择“ MongoDB 社区服务器”。

当前数据库版本现在显示在屏幕右侧,您可以单击带有预设值的绿色下载按钮。

3.2 开箱和基本安装

双击打开下载的文件。经过简短的系统检查后,您可以单击“下一步”开始安装。

在接下来的窗口中,请勾选方框以接受许可协议,然后再次单击“下一步”。

最简单的方法是安装所有程序功能:单击预选字段“完成”。

我们接受“服务配置”的以下信息,然后再次单击“下一步> ”。

我们还可以选择额外安装 MongoDB Compass(一个有用的图形用户界面),然后再次单击“下一步”。

最后单击“ Install ”,现在开始安装。如果您的 Windows 的其他窗口出现要求您“允许更改”,请点击“”进行确认。

稍等片刻后,您可以单击“完成”来完成安装。MongoDB Compass 可能会自动启动。单击可能出现的任何信息窗口并退出 MongoDB Compass,因为我们不会在这里进一步讨论 Compass,只会处理本教程中的基本数据库安装。

3.3 用户友好性

为了能够以用户友好的方式使用 MongoDB,现在只需要在首次启动之前在 Windows 中进行一些小的调整。

打开 Windows 下的文件管理器“资源管理器”。单击“ This PC ”,然后双击“ C: drive ”,然后双击“Programs”,然后双击“ MongoDB ”,然后是“Server”,然后是出现的版本号,最后是“垃圾桶”。现在我们需要这个文件路径。在文件显示上方,窗口现在显示类似“ > This PC > Windows (C) > Programs > MongoDB > Server > 4.4 > bin ”。在“ bin ”上右击,选择“复制地址”,将文件路径复制到剪贴板。

现在在 Windows 脚栏的搜索字段中键入“ var ”,应该会出现控制面板中的“编辑系统环境变量”建议。单击鼠标选择它。在现在出现在“高级”选项卡下的系统属性中,单击底部的“环境变量”按钮。在下方的“系统变量”中,双击路径。出现一个窗口“编辑环境变量”。在这里点击“新建”并使用 CTRL-V 从剪贴板复制 MongoDB 安装路径。现在用“确定”确认打开的窗口 3 x”并关闭它们。现在我们的 MongoDB 调用和命令可以从所有目录轻松访问。

我们要做的最后一件事是为 MongoDB 创建默认数据库目录。我们再次转到 Windows 页脚中的搜索字段,使用“ cmd ”再次打开命令提示符。在命令提示符中,我们现在使用“ md c:\data\db ”创建默认的 MongoDB 目录。如果没有出现错误消息,我们就完成了安装,随后可以在命令提示符中启动和测试安装的 MongoDB。

3.4 启动并测试MongoDB

现在我们使用命令“ mongo ”启动数据库。使用命令“ show dbs ”,现在应该显示三个预设数据库 admin、config 和 local。为了检查功能,我们现在可以使用命令“ use NeueDB ”创建我们自己的名为“ NeueDB ”的数据库。

我们现在在这里插入第一条数据记录:命令“ db.items.insert ({name: “name”}) ”创建第一条数据条目。使用命令“ db.items.find() ”,我们可以检查带有 ObjectID 的数据集现在是否可用。通过再次执行命令“ show dbs ”,MongoDB 现在不仅应该向我们展示三个标准数据库,还应该向我们展示我们刚刚创建的“ NewDB ”。




4.总结

NoSQL 数据库 MongoDB 由社区开发为开源项目,现在也广泛用于工业环境。

然而,MongoDB 的现收现付模式也存在,在这里被广泛使用,因为如果没有完全托管的故障转移和复杂的恢复选项,业务关键型应用程序很少能运行。但是www.mongodb.com上免费提供的社区服务器版本是使用此数据库进入 NoSQL 世界的绝佳方式。

更多信息

数据库
MongoDB 的一个重要特性是通过简单复制到多个服务器来实现数据的高可用性。
在此处阅读带有 MongoDB 插件的 OPC Router如何以读写模式访问 NoSQL 数据库的数据并支持复制处理。
电报机器人

Telegram Bot是一种很好的方式,可以在您需要时从几乎所有可以想到的区域传递信息。
我们在知识库“技术”中的一篇文章中准确指出了这种特殊的操作模式,并提供了有关如何自己创建 Telegram Bot 的说明。

OPC UA

OPC UA——它到底是什么?
OPC UA 标准化了对工业 4.0 中设备、机器和其他系统的访问,从而实现了与制造商无关的数据交换。您可以在我们的知识库中找到工业 4.0 和物联网最重要的通信协议的术语和功能概览。

通过 OPC Router 插件数据连接 MongoDB

使用我们的MongoDB 插件,您可以将 OPC Router连接到 MongoDB 数据库。

请求下载并测试 MongoDB 插件!