Docker安装部署MongoDB及MySql和MongoDB的语法对比
MongoDB是一個(gè)免費(fèi)的、開(kāi)源的、跨平臺(tái)分布式面向文檔存儲(chǔ)的數(shù)據(jù)庫(kù),由C++語(yǔ)言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。
MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點(diǎn)是它支持的查詢語(yǔ)言非常強(qiáng)大,其語(yǔ)法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z(yǔ)言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫(kù)單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。
官網(wǎng):https://www.mongodb.com/
適用場(chǎng)景
- 網(wǎng)站實(shí)時(shí)數(shù)據(jù)處理。它非常適合實(shí)時(shí)的插入、更新與查詢,并具備網(wǎng)站實(shí)時(shí)數(shù)據(jù)存儲(chǔ)所需的復(fù)制及高度伸縮性。
- 緩存。由于性能很高,它適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由它搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過(guò)載。
- 高伸縮性高可用的場(chǎng)景。MongoDB使用分片水平縮放,并且可以運(yùn)行在多個(gè)服務(wù)器上,平衡負(fù)載或復(fù)制數(shù)據(jù),以便在硬件出現(xiàn)故障時(shí)保持系統(tǒng)正常運(yùn)行。
- 海量數(shù)據(jù)。
不適用的場(chǎng)景
- 要求高度事務(wù)性的系統(tǒng)。
- 傳統(tǒng)的商業(yè)智能應(yīng)用。
- 復(fù)雜的跨文檔(表)級(jí)聯(lián)查詢。
鏡像說(shuō)明
官方鏡像地址:https://hub.docker.com/_/mongo
主要環(huán)境變量說(shuō)明
- MONGO_INITDB_ROOT_USERNAME:管理員賬號(hào),例如:root
- MONGO_INITDB_ROOT_PASSWORD: 管理員密碼,例如:12345
運(yùn)行MongoDB容器鏡像
Powershell:
docker run -p 27017:27017 --name myMongodb `
-d mongo
使用主機(jī)目錄保存數(shù)據(jù)庫(kù)文件
PowerShell:
docker run -p 27017:27017 --name myMongodb `
-v d:/temp/data/mongodb:/data/db `
-d mongo
執(zhí)行之后如下圖所示:
*注意:Windows和OS X上的Docker默認(rèn)設(shè)置使用VirtualBox VM來(lái)托管Docker守護(hù)程序。但是,VirtualBox用于在主機(jī)系統(tǒng)和Docker容器之間共享文件夾的機(jī)制與MongoDB使用的內(nèi)存映射文件不兼容(請(qǐng)參閱vbox bug,docs.mongodb.org和相關(guān)的jira.mongodb.org錯(cuò)誤),*這意味著無(wú)法運(yùn)行映射到主機(jī)的數(shù)據(jù)目錄的MongoDB容器。
管理Mongodb
使用nosqlbooster管理MongoDB
nosqlbooster以shell為中心的跨平臺(tái)GUI的MongoDB管理工具,它提供全面的服務(wù)器監(jiān)控工具,流暢的查詢構(gòu)建器,SQL查詢支持,ES2017語(yǔ)法支持和真正的智能感知體驗(yàn),是非常值得推薦的一個(gè)MongoDB管理工具。
官方網(wǎng)址:https://nosqlbooster.com
非常值得推薦的是,NoSQLBooster支持我們使用SQL查詢語(yǔ)法來(lái)執(zhí)行查詢(MongoDB本身不支持,是由NoSQLBooster進(jìn)行了驗(yàn)證和轉(zhuǎn)換處理)。
例如以下MongoDB查詢語(yǔ)法:
db.employees.aggregate([{
? KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup: { _id: "department", total: { sum:"sum: "sum:"salary" }}
}])
可以使用我們熟悉的SQL查詢語(yǔ)法來(lái)查詢:
mb.runSQLQuery(`
? SELECT department, SUM(salary) AS total FROM employees GROUP BY department
?
`)
這里附上一個(gè)MySql和MongoDB的語(yǔ)法對(duì)比示例:
同時(shí),NoSQLBooster還提供豐富的性能監(jiān)視和分析工具,如Visual Explain Plan:
使用MongoDB Com****pass
MongoDB Compass是MongoDB的可視化工具,適用于Linux,Mac或Windows,能夠非常直觀的查看和管理數(shù)據(jù),并且可以輕松識(shí)別可能導(dǎo)致性能問(wèn)題的瓶頸或慢查詢,這意味著我們可以更快地解決問(wèn)題。
參考鏈接:https://www.cnblogs.com/codelove/p/10312692.html
總結(jié)
以上是生活随笔為你收集整理的Docker安装部署MongoDB及MySql和MongoDB的语法对比的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ubuntu21.04安装微信3.2.1
- 下一篇: HBase架构:HLog region