面向文檔的數(shù)據(jù)庫以其性能和高水平可擴(kuò)展性給人留下深刻印象
什么是 MongoDB?MongoDB 是一個基于非關(guān)系文檔模型的數(shù)據(jù)庫。因此,作為所謂的NoSQL 數(shù)據(jù)庫(NoSQL = Not-only-SQL),它與傳統(tǒng)的關(guān)系數(shù)據(jù)庫如Oracle、MySQL或Microsoft SQL Server有著根本的區(qū)別。MongoDB這個名字來源于英文單詞“humongous”,大致意思是“巨大的”。MongoDB 于 2009 年由創(chuàng)始人兼開發(fā)人員 Eliot Horowitz 發(fā)布,他于 2020 年卸任首席技術(shù)官和 MongoDB Inc. 董事會成員,但仍以技術(shù)顧問的身份活躍。
您可以在我們的網(wǎng)站上找到關(guān)于此主題的帶有“數(shù)據(jù)庫系統(tǒng)連接”標(biāo)題的特殊視頻教程流。

1.工業(yè)環(huán)境中的數(shù)據(jù)庫使用
面向文檔的 NoSQL 數(shù)據(jù)庫 MongoDB與傳統(tǒng) SQL 數(shù)據(jù)庫的概念差異可以在以下示例中進(jìn)行解釋。
在塑料零件的銷售辦公室中,關(guān)系數(shù)據(jù)庫用于客戶管理,例如,將客戶數(shù)據(jù)存儲在由行和列組成的 Excel 表格中。我們先來看這個系統(tǒng)的一小部分,客戶的聯(lián)系信息。它可以從一個簡單的表格開始,每個表格包含一行代表每個客戶。這一行有一個唯一的客戶 ID 號、名字和姓氏、電子郵件地址、電話號碼和公司地址。
現(xiàn)在,如果我們想為客戶添加第二個電話號碼怎么辦?
對于工作號碼和手機(jī)號碼,甚至是緊急聯(lián)系電話,我們可以簡單地添加更多列。多個地址可能會出現(xiàn)同樣的問題,例如,如果客戶希望將樣品發(fā)送到他們的家庭辦公室。此外,以前的地址或塑料部件首選特殊顏色的信息可能是您可能仍然需要的信息。您現(xiàn)在只需為所有客戶的聯(lián)系信息添加更多列。最終你會得到一個臃腫的、大部分是空的、低效的表,因?yàn)樵S多字段沒有被許多其他客戶使用。

相反,當(dāng)然,如果需要額外的數(shù)據(jù),可以在我們的 Excel 模型中創(chuàng)建新的電子表格。所以這里有一個新的單獨(dú)的電話號碼表,每行只包含一個電話號碼,它指的是客戶 ID 并標(biāo)有“私人”、“工作”或“移動”等標(biāo)簽。可以用這種方式為地址等創(chuàng)建另一個工作表。
人們會創(chuàng)建大量表格來查看單個客戶,而這里甚至沒有考慮訂單歷史記錄或發(fā)票歸檔。您可以猜想在這種嚴(yán)格的模式下工作會多快失控。然而,這就是開發(fā)人員在實(shí)際應(yīng)用程序中處理這些基于表的關(guān)系數(shù)據(jù)庫中數(shù)據(jù)的方式。

1.1 關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)
單個事物(如客戶)的數(shù)據(jù)通常分布在數(shù)十個表格和工作表中。這顯著增加了應(yīng)用程序的復(fù)雜性并導(dǎo)致了一些缺點(diǎn)。
關(guān)系數(shù)據(jù)庫的缺點(diǎn):
- 復(fù)雜性
對于維護(hù)應(yīng)用程序的用戶來說,很難理解復(fù)雜和多層次的結(jié)構(gòu)。 - 添加新功能
添加功能更加困難,因?yàn)槔?,對于交叉引用,需要考慮更多的表格和工作表。 - 檢索
數(shù)據(jù) 從這么多地方檢索數(shù)據(jù)效率低下,應(yīng)用程序需要復(fù)雜的編程代碼來處理它。
想象一下,如果我們將這個例子轉(zhuǎn)移到現(xiàn)實(shí)世界中,銷售代表必須從一個文件夾中檢索姓名,從另一個文件夾中檢索電話號碼,并從第三個文件夾中檢索地址。您可以想象那將是多么復(fù)雜、容易出錯和緩慢。
1.2 MongoDB是如何解決問題的?
MongoDB 現(xiàn)在采用完全不同的“無模式”方法。數(shù)據(jù)存儲在所謂的“文檔”中。
就像懸掛文件中的物理客戶文件一樣,一個文件可以包含兩個地址、三個電話號碼和其他信息,例如個人培訓(xùn)視頻。它可以存儲在另一個僅包含電話號碼、地址且還沒有訂單的客戶文檔旁邊。這些文檔不限于具有相同數(shù)量的列文檔或數(shù)據(jù)字段。

MongoDB 將多個文檔分組為“集合”,其中數(shù)據(jù)庫可以包含多個。
IT 可以更有效地處理以這種方式構(gòu)建的數(shù)據(jù),當(dāng)然,這些文檔也更容易讓人閱讀。這種類型的數(shù)據(jù)存儲對開發(fā)人員來說非常有益,因?yàn)樗麄儾辉傩枰鶕?jù)數(shù)據(jù)庫的要求調(diào)整應(yīng)用程序。使用 MongoDB,應(yīng)用程序可以以自然方便的方式存儲數(shù)據(jù)。這也意味著可以添加新數(shù)據(jù),而不必?fù)?dān)心簡單的更改會導(dǎo)致數(shù)據(jù)庫記錄變得不可讀。

1.3 與傳統(tǒng)數(shù)據(jù)庫的區(qū)別
除了文檔模型之外,MongoDB 與傳統(tǒng)數(shù)據(jù)庫有著根本的區(qū)別,因?yàn)樗墓δ茉试S MongoDB 協(xié)調(diào)多個服務(wù)器來存儲數(shù)據(jù)。
這使得 MongoDB 成為一個分布式數(shù)據(jù)庫,并使其能夠提供開發(fā)人員必須自己創(chuàng)建的容錯性、可擴(kuò)展性和數(shù)據(jù)可用性功能,從而可以節(jié)省風(fēng)險(xiǎn)和勞動力。
- 容錯性
為了保證工作中的容錯性,相同數(shù)據(jù)的冗余副本保存在不同的服務(wù)器上。單臺服務(wù)器故障不影響應(yīng)用。 - 可擴(kuò)展性
MongoDB 可無縫擴(kuò)展到多個服務(wù)器以存儲和處理數(shù)據(jù)。因此數(shù)據(jù)量和性能要求增加。您可以簡單地添加更多服務(wù)器,而不是升級昂貴的大型機(jī)。這也非常適合負(fù)載分布在多臺計(jì)算機(jī)上的云環(huán)境。 - 數(shù)據(jù)可用性
數(shù)據(jù)可在世界各地的用戶附近本地獲取,以便快速訪問。
MongoDB 文檔模型和分布式系統(tǒng)組件的結(jié)合使 MongoDB 比關(guān)系數(shù)據(jù)庫更具優(yōu)勢。
此外,“Mongo”公司還提供管理工具,允許數(shù)據(jù)庫操作員監(jiān)督MongoDB集群的配置、監(jiān)控、備份、恢復(fù)和更新。這對于使 MongoDB 適合最苛刻的用例以及具有嚴(yán)格 SLA(服務(wù)水平協(xié)議)和操作要求的組織至關(guān)重要。
2. 云中的 MongoDB 和服務(wù)
MongoDB 是為云開發(fā)的,并且已經(jīng)在那里廣泛使用了一段時間。
然而,越來越多的用戶也有興趣使用作為“服務(wù)”提供的組件來創(chuàng)建他們的應(yīng)用程序。為了滿足這種需求,“MongoDB Atlas”作為服務(wù)產(chǎn)品發(fā)布。Atlas 允許用戶將MongoDB 作為服務(wù)使用,而不必?fù)?dān)心管理數(shù)據(jù)庫。MongoDB Atlas可在領(lǐng)先的云平臺 AWS(亞馬遜網(wǎng)絡(luò)服務(wù))、Microsoft Azure 和谷歌云平臺上使用。這提供了選擇公共云提供商的靈活性,而無需供應(yīng)商鎖定且無需重寫代碼。這些創(chuàng)新正在推動越來越多的公司采用 MongoDB 平臺。
3. 如何在 Windows 10 上安裝 MongoDB?
在本教程中,我們將介紹 MongoDB 的安裝和基本配置,即使沒有背景知識的初學(xué)者也可以通過這個分步指南在 Windows 10 上安裝數(shù)據(jù)庫。
3.1 下載
請打開您的互聯(lián)網(wǎng)瀏覽器并轉(zhuǎn)到頁面“ www.mongodb.com ”。
單擊右上角的綠色“免費(fèi)試用”按鈕。
在接下來的頁面上,選擇“本地”,然后選擇“ MongoDB 社區(qū)服務(wù)器”。
當(dāng)前數(shù)據(jù)庫版本現(xiàn)在顯示在屏幕右側(cè),您可以單擊帶有預(yù)設(shè)值的綠色下載按鈕。
3.2 開箱和基本安裝
雙擊打開下載的文件。經(jīng)過簡短的系統(tǒng)檢查后,您可以單擊“下一步”開始安裝。
在接下來的窗口中,請勾選方框以接受許可協(xié)議,然后再次單擊“下一步”。
最簡單的方法是安裝所有程序功能:單擊預(yù)選字段“完成”。
我們接受“服務(wù)配置”的以下信息,然后再次單擊“下一步> ”。
我們還可以選擇額外安裝 MongoDB Compass(一個有用的圖形用戶界面),然后再次單擊“下一步”。
最后單擊“ Install ”,現(xiàn)在開始安裝。如果您的 Windows 的其他窗口出現(xiàn)要求您“允許更改”,請點(diǎn)擊“是”進(jìn)行確認(rèn)。
稍等片刻后,您可以單擊“完成”來完成安裝。MongoDB Compass 可能會自動啟動。單擊可能出現(xiàn)的任何信息窗口并退出 MongoDB Compass,因?yàn)槲覀儾粫谶@里進(jìn)一步討論 Compass,只會處理本教程中的基本數(shù)據(jù)庫安裝。
3.3 用戶友好性
為了能夠以用戶友好的方式使用 MongoDB,現(xiàn)在只需要在首次啟動之前在 Windows 中進(jìn)行一些小的調(diào)整。
打開 Windows 下的文件管理器“資源管理器”。單擊“ This PC ”,然后雙擊“ C: drive ”,然后雙擊“Programs”,然后雙擊“ MongoDB ”,然后是“Server”,然后是出現(xiàn)的版本號,最后是“垃圾桶”。現(xiàn)在我們需要這個文件路徑。在文件顯示上方,窗口現(xiàn)在顯示類似“ > This PC > Windows (C) > Programs > MongoDB > Server > 4.4 > bin ”。在“ bin ”上右擊,選擇“復(fù)制地址”,將文件路徑復(fù)制到剪貼板。
現(xiàn)在在 Windows 腳欄的搜索字段中鍵入“ var ”,應(yīng)該會出現(xiàn)控制面板中的“編輯系統(tǒng)環(huán)境變量”建議。單擊鼠標(biāo)選擇它。在現(xiàn)在出現(xiàn)在“高級”選項(xiàng)卡下的系統(tǒng)屬性中,單擊底部的“環(huán)境變量”按鈕。在下方的“系統(tǒng)變量”中,雙擊路徑。出現(xiàn)一個窗口“編輯環(huán)境變量”。在這里點(diǎn)擊“新建”并使用 CTRL-V 從剪貼板復(fù)制 MongoDB 安裝路徑。現(xiàn)在用“確定”確認(rèn)打開的窗口 3 x”并關(guān)閉它們。現(xiàn)在我們的 MongoDB 調(diào)用和命令可以從所有目錄輕松訪問。
我們要做的最后一件事是為 MongoDB 創(chuàng)建默認(rèn)數(shù)據(jù)庫目錄。我們再次轉(zhuǎn)到 Windows 頁腳中的搜索字段,使用“ cmd ”再次打開命令提示符。在命令提示符中,我們現(xiàn)在使用“ md c:\data\db ”創(chuàng)建默認(rèn)的 MongoDB 目錄。如果沒有出現(xiàn)錯誤消息,我們就完成了安裝,隨后可以在命令提示符中啟動和測試安裝的 MongoDB。
3.4 啟動并測試MongoDB
現(xiàn)在我們使用命令“ mongo ”啟動數(shù)據(jù)庫。使用命令“ show dbs ”,現(xiàn)在應(yīng)該顯示三個預(yù)設(shè)數(shù)據(jù)庫 admin、config 和 local。為了檢查功能,我們現(xiàn)在可以使用命令“ use NeueDB ”創(chuàng)建我們自己的名為“ NeueDB ”的數(shù)據(jù)庫。
我們現(xiàn)在在這里插入第一條數(shù)據(jù)記錄:命令“ db.items.insert ({name: “name”}) ”創(chuàng)建第一條數(shù)據(jù)條目。使用命令“ db.items.find() ”,我們可以檢查帶有 ObjectID 的數(shù)據(jù)集現(xiàn)在是否可用。通過再次執(zhí)行命令“ show dbs ”,MongoDB 現(xiàn)在不僅應(yīng)該向我們展示三個標(biāo)準(zhǔn)數(shù)據(jù)庫,還應(yīng)該向我們展示我們剛剛創(chuàng)建的“ NewDB ”。
4.總結(jié)
NoSQL 數(shù)據(jù)庫 MongoDB 由社區(qū)開發(fā)為開源項(xiàng)目,現(xiàn)在也廣泛用于工業(yè)環(huán)境。
然而,MongoDB 的現(xiàn)收現(xiàn)付模式也存在,在這里被廣泛使用,因?yàn)槿绻麤]有完全托管的故障轉(zhuǎn)移和復(fù)雜的恢復(fù)選項(xiàng),業(yè)務(wù)關(guān)鍵型應(yīng)用程序很少能運(yùn)行。但是www.mongodb.com上免費(fèi)提供的社區(qū)服務(wù)器版本是使用此數(shù)據(jù)庫進(jìn)入 NoSQL 世界的絕佳方式。
更多信息
在此處閱讀帶有 MongoDB 插件的 OPC Router如何以讀寫模式訪問 NoSQL 數(shù)據(jù)庫的數(shù)據(jù)并支持復(fù)制處理。
Telegram Bot是一種很好的方式,可以在您需要時從幾乎所有可以想到的區(qū)域傳遞信息。
我們在知識庫“技術(shù)”中的一篇文章中準(zhǔn)確指出了這種特殊的操作模式,并提供了有關(guān)如何自己創(chuàng)建 Telegram Bot 的說明。
OPC UA——它到底是什么?
OPC UA 標(biāo)準(zhǔn)化了對工業(yè) 4.0 中設(shè)備、機(jī)器和其他系統(tǒng)的訪問,從而實(shí)現(xiàn)了與制造商無關(guān)的數(shù)據(jù)交換。您可以在我們的知識庫中找到工業(yè) 4.0 和物聯(lián)網(wǎng)最重要的通信協(xié)議的術(shù)語和功能概覽。