MongoDB簡介
MongDB是一個(gè)高性能窃诉,開源胁艰,無模式的文檔型NosQL數(shù)據(jù)庫踩蔚。
1.文件存儲格式BSON(一種json的擴(kuò)展)?
2.模式自由?
數(shù)據(jù)格式不受限了表的結(jié)構(gòu)?
3.支持動態(tài)查詢?
4.支持完全索引?
5.支持復(fù)制(其主從復(fù)制)和故障恢復(fù)?
6.使用高效的二進(jìn)制數(shù)據(jù)存儲墓卦,包括大型對象?
7.自動處理碎片紊扬,以支持云計(jì)算層次的擴(kuò)展隙姿。?
8.支持Java梅垄、Ruby、Python输玷、C++队丝、PHP等多種語言?
9.內(nèi)部支持Javascript
1.查詢速度快?
2.高并發(fā)靡馁。可以達(dá)到2萬個(gè)并發(fā)机久。?
3.高容量臭墨。支持10TB意思的數(shù)據(jù)量?
MongoDB使用場景?
1.網(wǎng)站數(shù)據(jù)?
2.緩存?
3.大尺寸、低價(jià)值的數(shù)據(jù)?
4.高伸縮的場景?
5.用于對象以及Json數(shù)據(jù)存儲
1.在32位操作系統(tǒng)上膘盖,不支持大于2.5G的數(shù)據(jù)?
2.單個(gè)文件大小限制16M?
3.高度事務(wù)的系統(tǒng)?
4.傳統(tǒng)商業(yè)智能應(yīng)用
在這里胧弛,主要講解的是win下安裝,關(guān)于Linux下安裝侠畔,隨后會添加上结缚。?
下載網(wǎng)址:官方網(wǎng)站(https://www.mongodb.org/downloads/#production)?
在這里使用的是win32?
筆者下載老長時(shí)間才下完,估計(jì)是個(gè)人網(wǎng)速問題软棺,?
安裝好之后掺冠,安裝目錄下,發(fā)現(xiàn)有如下目錄?
配置path路徑目的便于码党,直接可以再命令提示符輸入mongoDB命令,不需要每次在切換到mongoDB的bin目錄斥黑。在[我的電腦]右鍵揖盘,選擇[屬性]=>[高級系統(tǒng)設(shè)置]=>[高級]=>[環(huán)境變量設(shè)置]=>系統(tǒng)變量里面的[path]修改,添加mongoDB的bin目錄,我添加的目錄是’C:\Program Files\MongoDB\Server\3.2\bin’?
操作步驟截圖如下:?
參照官方網(wǎng)站:https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#install-mongodb-community-edition?
啟動MongDB步驟如下
官方原話如下:?
Set up the MongoDB environment?
1.MongoDB requires a data directory to store all data. MongoDB’s default data directory path is \data\db. Create this folder using the following commands from a Command Prompt:?
md \data\db?
mongoDB需要指定一個(gè)目錄來存儲數(shù)據(jù)锌奴。在win下在命令提示中兽狭,你可以使用md命令創(chuàng)建目錄。在此鹿蜀,我將創(chuàng)建一個(gè)data目錄和log目錄箕慧,分別用于存放數(shù)據(jù)和日志。吐槽一下茴恰,感覺win下創(chuàng)建目錄確實(shí)沒有l(wèi)inux下方便颠焦。?
此時(shí)該目錄下創(chuàng)建目錄如下?
官方原話如下:?
To start MongoDB, run mongod.exe. For example, from the Command Prompt:?
C:\mongodb\bin\mongod.exe?
This starts the main MongoDB database process. The waiting for connections message in the console output indicates that the mongod.exe process is running successfully.?
就是我們通過mongod.exe來啟動mongoDB,啟動了MongoDB主數(shù)據(jù)進(jìn)程往枣,如果出現(xiàn)等待連接的消息伐庭,則暗示著mongod.exe進(jìn)程正在成功運(yùn)行著。?
好了分冈,現(xiàn)在我們開始啟動了圾另。?
啟動命令如下:?
mongod.exe --dbpath="C:\Program Files\MongoDB\Server\data" --logpath="C:\Program Files\MongoDB\Server\log\mongodb.log" --port=27017?
如果沒有配置mongoDB的path目錄,需要先切換到mongoDB的bin目錄下或是使用C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe去執(zhí)行雕沉。?
解析:dbpath指定數(shù)據(jù)存放目錄集乔,可自行指定?
logpath指定日志路徑,可以自行指定?
port指定端口號坡椒,默認(rèn)的是27017
此時(shí)既然爆出如下錯誤?
也就是說32位系統(tǒng)默認(rèn)情況下沒有開啟日志記錄功能扰路,請使用–journal開啟尤溜。?
但是當(dāng)我進(jìn)入C:\Program Files\MongoDB\Server\log目錄下時(shí)候,發(fā)現(xiàn)有日志幼衰,其內(nèi)容如下:
016-04-28T21:42:47.003+0800I CONTROL? [main] Hotfix KB2731284orlater update isnotinstalled, willzero-out datafiles2016-04-28T21:42:47.071+0800I CONTROL? [initandlisten] MongoDB starting : pid=17916port=27017dbpath=C:\Program Files\MongoDB\Server\data32-bit host=YEGZT8JOIIU2LKY2016-04-28T21:42:47.072+0800I CONTROL? [initandlisten] targetMinOS: Windows Vista/Windows Server20082016-04-28T21:42:47.072+0800I CONTROL? [initandlisten] dbversionv3.2.52016-04-28T21:42:47.072+0800I CONTROL? [initandlisten] gitversion:34e65e5383f7ea1726332cb175b73077ec4a1b022016-04-28T21:42:47.072+0800I CONTROL? [initandlisten] allocator: tcmalloc2016-04-28T21:42:47.073+0800I CONTROL? [initandlisten] modules:none2016-04-28T21:42:47.073+0800I CONTROL? [initandlisten] build environment:2016-04-28T21:42:47.073+0800I CONTROL? [initandlisten]? ? distarch: i3862016-04-28T21:42:47.073+0800I CONTROL? [initandlisten]? ? target_arch: i3862016-04-28T21:42:47.073+0800I CONTROL? [initandlisten] options: { net: { port:27017}, storage: { dbPath:"C:\Program Files\MongoDB\Server\data"}, systemLog: { destination:"file", path:"C:\Program Files\MongoDB\Server\log\mongodb.log"} }2016-04-28T21:42:47.090+0800I STORAGE? [initandlisten] exceptionininitAndListen:28663Cannot start server. The default storage engine'wiredTiger'isnotavailablewiththis buildofmongod. Please specifyadifferent storage engine explicitly, e.g.--storageEngine=mmapv1., terminating2016-04-28T21:42:47.090+0800I CONTROL? [initandlisten] dbexit:? rc:100
1
2
3
4
5
6
7
8
9
10
11
12
13
這日志記錄的跟靴跛,命令提示中提示的還不一樣啊,怎么辦渡嚣?因?yàn)槊钐崾局猩揖Γ崾臼且驗(yàn)槿罩緵]有開啟造成的錯誤,而日志說引擎不合適识椰。只能先一個(gè)嘗試一下绝葡。那我不添加日志,執(zhí)行如下命令?
mongod.exe --dbpath="C:\Program Files\MongoDB\Server\data" --port=27017?
通過這個(gè)提示腹鹉,看來這次確定了藏畅,是默認(rèn)存儲引擎不支持了。只好換一個(gè)引擎功咒。執(zhí)行如下命令:
mongod.exe --dbpath="C:\ProgramFiles\MongoDB\Server\data"? --logpath="C:\ProgramFiles\MongoDB\Server\log\mongodb.log" -storageEngine="mmapv1" --port=27017? --journal
1
執(zhí)行結(jié)果如下:?
一直在等待連接中愉阎,此時(shí)我查看了一些log日志?
看來是啟動了。當(dāng)然也可以在瀏覽器中輸入http://localhost:27017?如果出現(xiàn)如下界面力奋,代碼安裝成功榜旦。?
官方原話如下:?
Connect to MongoDB.?
To connect to MongoDB through the mongo.exe shell, open another Command Prompt.
C:\mongodb\bin\mongo.exe?
If you want to develop applications using .NET, see the documentation of C# and MongoDB for more information.
要想連接MongoDB,需要打開另外一個(gè)命令提示符窗口景殷,通過mongo.exe來建立連接溅呢。如果要使用 .NET開發(fā)應(yīng)用,需要查看C#文檔和其他MongoDB手冊猿挚,來獲取更多信息咐旧。
說白了,就是客戶端通過mongo.exe來連接mongoDB绩蜻。其實(shí)直接輸入mongo也一樣铣墨,當(dāng)然我這里面出現(xiàn)了一些警告信息,暫時(shí)可以不去理會办绝。?
客戶端連接mongoDB方式如下(里面的mongoDB也可以換成mongo.exe)?
1.db.help()?
查看命令提示?
2.db?
查看當(dāng)前所在數(shù)據(jù)庫的名字?
3.use命令?
use+數(shù)據(jù)庫名 表示切換或是創(chuàng)建數(shù)據(jù)庫踏兜。和Mysql中use的唯一不同點(diǎn),就是當(dāng)數(shù)據(jù)庫不存在的時(shí)候八秃,MongoDB中的use可以創(chuàng)建數(shù)據(jù)庫碱妆。?
4.show dbs?
顯示數(shù)據(jù)庫,需要注意的是show dbs昔驱,只會顯示有數(shù)據(jù)的庫疹尾,沒有數(shù)據(jù)的庫,是不會顯示的。下圖中纳本,dqs數(shù)據(jù)庫中窍蓝,開始沒有數(shù)據(jù),所以不會顯示繁成,當(dāng)我插入一條數(shù)據(jù)庫后吓笙,show dbs 就會顯示它。?
5.db.dropDatabase()?
刪除當(dāng)前數(shù)據(jù)巾腕。?
刪除之前?
執(zhí)行刪除操作面睛,刪除之后,當(dāng)前庫不變化尊搬。?
刪除之后叁鉴,數(shù)據(jù)庫文件也沒有了。?
6.db.stats()?
查看當(dāng)前數(shù)據(jù)的狀態(tài)?
7.db.version()?
查看mongoDB版本?
8.db.getMongo()?
查看當(dāng)前連接機(jī)器的ip?
9.mongoDB對支持JavaScript?
因?yàn)閙ongoDB支持JavaScript佛寿,所以可以直接在命令提示中輸入js代碼幌墓。如下圖?