MongoDB是一個免費的、開源的、跨平臺分佈式面向文檔存儲的數據庫,由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。sql
MongoDB是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。它支持的數據結構很是鬆散,是相似json的bson格式,所以能夠存儲比較複雜的數據類型。Mongo最大的特色是它支持的查詢語言很是強大,其語法有點相似於面向對象的查詢語言,幾乎能夠實現相似關係數據庫單表查詢的絕大部分功能,並且還支持對數據創建索引。mongodb
官網:https://www.mongodb.com/docker
官方鏡像地址:https://hub.docker.com/_/mongoshell
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容器。
nosqlbooster以shell爲中心的跨平臺GUI的MongoDB管理工具,它提供全面的服務器監控工具,流暢的查詢構建器,SQL查詢支持,ES2017語法支持和真正的智能感知體驗,是很是值得推薦的一個MongoDB管理工具。
很是值得推薦的是,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,可以很是直觀的查看和管理數據,而且能夠輕鬆識別可能致使性能問題的瓶頸或慢查詢,這意味着咱們能夠更快地解決問題。