一誊抛、什么是MangoDB
MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫。由C++語言編寫剩晴。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案较木。
MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品几迄,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富蔚龙,最像關(guān)系數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散映胁,是類似json的bson格式木羹,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大解孙,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言坑填,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引弛姜。(核心數(shù)據(jù)不建議使用)
二脐瑰、主要特性
(1)文檔數(shù)據(jù)類型
SQL類型的數(shù)據(jù)庫是正規(guī)化的,可以通過主鍵或者外鍵的約束保證數(shù)據(jù)的完整性與唯一性廷臼,所以SQL類型的數(shù)據(jù)庫常用于對(duì)數(shù)據(jù)完整性較高的系統(tǒng)苍在。MongoDB在這一方面是不如SQL類型的數(shù)據(jù)庫绝页,且MongoDB沒有固定的Schema,正因?yàn)镸ongoDB少了一些這樣的約束條件寂恬,可以讓數(shù)據(jù)的存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)更靈活续誉,存儲(chǔ)速度更加快。
(2)即時(shí)查詢能力
MongoDB保留了關(guān)系型數(shù)據(jù)庫即時(shí)查詢的能力初肉,保留了索引(底層是基于B tree)的能力酷鸦。這一點(diǎn)汲取了關(guān)系型數(shù)據(jù)庫的優(yōu)點(diǎn),相比于同類型的NoSQL redis 并沒有上述的能力牙咏。
(3)復(fù)制能力
MongoDB自身提供了副本集能將數(shù)據(jù)分布在多臺(tái)機(jī)器上實(shí)現(xiàn)冗余臼隔,目的是可以提供自動(dòng)故障轉(zhuǎn)移、擴(kuò)展讀能力妄壶。
(4)速度與持久性
MongoDB的驅(qū)動(dòng)實(shí)現(xiàn)一個(gè)寫入語義 fire and forget 躬翁,即通過驅(qū)動(dòng)調(diào)用寫入時(shí),可以立即得到返回得到成功的結(jié)果(即使是報(bào)錯(cuò))盯拱,這樣讓寫入的速度更加快盒发,當(dāng)然會(huì)有一定的不安全性,完全依賴網(wǎng)絡(luò)狡逢。
MongoDB提供了Journaling日志的概念宁舰,實(shí)際上像mysql的bin-log日志,當(dāng)需要插入的時(shí)候會(huì)先往日志里面寫入記錄奢浑,再完成實(shí)際的數(shù)據(jù)操作蛮艰,這樣如果出現(xiàn)停電,進(jìn)程突然中斷的情況雀彼,可以保障數(shù)據(jù)不會(huì)錯(cuò)誤壤蚜,可以通過修復(fù)功能讀取Journaling日志進(jìn)行修復(fù)。
(5)數(shù)據(jù)擴(kuò)展
MongoDB使用分片技術(shù)對(duì)數(shù)據(jù)進(jìn)行擴(kuò)展徊哑,MongoDB能自動(dòng)分片袜刷、自動(dòng)轉(zhuǎn)移分片里面的數(shù)據(jù)塊,讓每一個(gè)服務(wù)器里面存儲(chǔ)的數(shù)據(jù)都是一樣大小莺丑。
三著蟹、MangoDB的安裝
MongoDB 提供了可用于 32 位和 64 位系統(tǒng)的預(yù)編譯二進(jìn)制包,你可以從MongoDB官網(wǎng)下載安裝梢莽。
官方地址:https://www.mongodb.com/
運(yùn)行
可以自己選擇安裝目錄
四萧豆、啟動(dòng)MongoDB
創(chuàng)建幾個(gè)文件夾具體如下:數(shù)據(jù)庫路徑(data目錄)、日志路徑(logs目錄)和日志文件(mongo.log文件)
創(chuàng)建配置文件mongo.conf昏名,文件內(nèi)容如下:
#數(shù)據(jù)庫路徑
dbpath=d:\MongoDB\Server\3.4\data
#日志輸出文件路徑
logpath=d:\MongoDB\Server\3.4\logs\mongo.log
#錯(cuò)誤日志采用追加模式
logappend=true
#啟用日志文件涮雷,默認(rèn)啟用
journal=true
#這個(gè)選項(xiàng)可以過濾掉一些無用的日志信息,若需要調(diào)試使用請(qǐng)?jiān)O(shè)置為false
quiet=true
#端口號(hào) 默認(rèn)為27017
port=27017
安裝 MongoDB服務(wù)
通過執(zhí)行bin/mongod.exe轻局,使用--install選項(xiàng)來安裝服務(wù)洪鸭,使用--config選項(xiàng)來指定之前創(chuàng)建的配置文件膜钓。 cmd進(jìn)
入d:\MongoDB\Server\3.4\bin
mongod.exe ‐‐config "d:\MongoDB\Server\3.4\mongo.conf" ‐‐install(一定要管理員模式)
啟動(dòng)MongoDB服務(wù)
net start MongoDB
關(guān)閉MongoDB服務(wù)
net stop Mongo
移除MongoDB服務(wù)
" d:\MongoDB\Server\3.4\bin\mongod.exe" ‐‐remove
啟動(dòng)mongodb服務(wù),
命令執(zhí)行后卿嘲,瀏覽器中輸入http://127.0.0.1:27017看到如下界面即說明啟動(dòng)成功
六颂斜、安裝studio3t
studio3t是mongodb優(yōu)秀的客戶端工具。官方地址在https://studio3t.com/
創(chuàng)建一個(gè)新的鏈接