MongoDB容器化
MongoDB是一個免費的、開源的、跨平臺分散式面向檔案儲存的資料庫,由C++語言編寫。旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。
MongoDB是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。它支援的資料結構非常鬆散,是類似json的bson格式,因此可以儲存比較複雜的資料型別。Mongo最大的特點是它支援的查詢語言非常強大,其語法有點類似於面向物件的查詢語言,幾乎可以實現類似關係資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。
官網:https://www.mongodb.com/
適用場景
-
網站實時資料處理。它非常適合實時的插入、更新與查詢,並具備網站實時資料儲存所需的複製及高度伸縮性。
-
快取。由於效能很高,它適合作為資訊基礎設施的快取層。在系統重啟之後,由它搭建的持久化快取層可以避免下層的資料源過載。
-
高伸縮性高可用的場景。MongoDB使用分片水平縮放,並且可以執行在多個伺服器上,平衡負載或複製資料,以便在硬體出現故障時保持系統正常執行。
-
海量資料。
不適用的場景
-
要求高度事務性的系統。
-
傳統的商業智慧應用。
-
複雜的跨檔案(表)級聯查詢。
映象說明
官方映象地址:
https://hub.docker.com/_/mongo
主要環境變數說明
- MONGO_INITDB_ROOT_YSERNAME:管理員賬號,例如:root
- MONGO_INITDB_ROOT_PASSWORD:管理員密碼,例如:12345
執行MongoDB容器映象
Powershell:
docker run -p 27017:27017 –name myMongodb `
-d mongo
使用主機目錄儲存資料庫檔案
PowerShell:
docker run -p 27017:27017 –name myMongodb `
-v d:/temp/data/mongodb:/data/db `
-d mongo
執行之後如下圖所示:
註意:Windows和OS X上的Docker預設設定使用VirtualBox VM來託管Docker守護程式。但是,VirtualBox用於在主機系統和Docker容器之間共享檔案夾的機制與MongoDB使用的記憶體對映檔案不相容(請參閱vbox bug,docs.mongodb.org和相關的jira.mongodb.org錯誤),這意味著無法執行對映到主機的資料目錄的MongoDB容器。
管理Mongodb
nosqlbooster以shell為中心的跨平臺GUI的MongoDB管理工具,它提供全面的伺服器監控工具,流暢的查詢構建器,SQL查詢支援,ES2017語法支援和真正的智慧感知體驗,是非常值得推薦的一個MongoDB管理工具。
官方網址:https://nosqlbooster.com
非常值得推薦的是,NoSQLBooster支援我們使用SQL查詢語法來執行查詢(MongoDB本身不支援,是由NoSQLBooster進行了驗證和轉換處理)。
例如以下MongoDB查詢語法:
db.employees.aggregate([{
$group: { _id: “$department”, total: { $sum: “$salary” }}
}])
可以使用我們熟悉的SQL查詢語法來查詢:
mb.runSQLQuery(`
SELECT department, SUM(salary) AS total FROM employees GROUP BY department
`)
這裡附上一個MySql和MongoDB的語法對比示例:
同時,NoSQLBooster還提供豐富的效能監視和分析工具,如Visual Explain Plan:
MongoDB Compass是MongoDB的視覺化工具,適用於Linux,Mac或Windows,能夠非常直觀的檢視和管理資料,並且可以輕鬆識別可能導致效能問題的瓶頸或慢查詢,這意味著我們可以更快地解決問題。
已傳送
朋友將在看一看看到
分享你的想法…
分享想法到看一看