Docker最全教程——MongoDB容器化(十二)

MongoDB容器化

MongoDB是一個免費的、開源的、跨平臺分佈式面向文檔存儲的數據庫,C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。sql

MongoDB是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。它支持的數據結構很是鬆散,是相似json的bson格式,所以能夠存儲比較複雜的數據類型。Mongo最大的特色是它支持的查詢語言很是強大,其語法有點相似於面向對象的查詢語言,幾乎能夠實現相似關係數據庫單表查詢的絕大部分功能,並且還支持對數據創建索引。mongodb

官網:https://www.mongodb.com/docker

適用場景

  • 網站實時數據處理。它很是適合實時的插入、更新與查詢,並具有網站實時數據存儲所需的複製及高度伸縮性。
  • 緩存。因爲性能很高,它適合做爲信息基礎設施的緩存層。在系統重啓以後,由它搭建的持久化緩存層能夠避免下層的數據源過載。
  • 高伸縮性高可用的場景。MongoDB使用分片水平縮放,而且能夠運行在多個服務器上,平衡負載或複製數據,以便在硬件出現故障時保持系統正常運行。
  • 海量數據。

 

不適用的場景

  • 要求高度事務性的系統。
  • 傳統的商業智能應用。
  • 複雜的跨文檔(表)級聯查詢。

鏡像說明

官方鏡像地址:https://hub.docker.com/_/mongoshell

 

主要環境變量說明

  • MONGO_INITDB_ROOT_USERNAME:管理員帳號,例如:root
  • MONGO_INITDB_ROOT_PASSWORD: 管理員密碼,例如:12345

運行MongoDB容器鏡像

Powershell:數據庫

docker run  -p 27017:27017 --name myMongodb `json

   -d mongo緩存

 

 

使用主機目錄保存數據庫文件

PowerShell:服務器

docker run  -p 27017:27017 --name myMongodb `數據結構

   -v d:/temp/data/mongodb:/data/db `nosql

   -d mongo

執行以後以下圖所示:

 

注意:Windows和OS X上的Docker默認設置使用VirtualBox VM來託管Docker守護程序。可是VirtualBox用於在主機系統和Docker容器之間共享文件夾的機制與MongoDB使用的內存映射文件不兼容(請參閱vbox bug,docs.mongodb.org和相關的jira.mongodb.org錯誤)這意味着沒法運行映射到主機的數據目錄的MongoDB容器。

管理Mongodb

使用nosqlbooster管理MongoDB

nosqlbooster以shell爲中心的跨平臺GUIMongoDB管理工具,它提供全面的服務器監控工具,流暢的查詢構建器,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 CompassMongoDB的可視化工具,適用於Linux,Mac或Windows,可以很是直觀的查看和管理數據,而且能夠輕鬆識別可能致使性能問題的瓶頸或慢查詢,這意味着咱們能夠更快地解決問題。

 

相關文章
相關標籤/搜索