MongoDB基礎(chǔ)

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

MongoDB的優(yōu)勢

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ù)存儲

MongoDB限制

1.在32位操作系統(tǒng)上膘盖,不支持大于2.5G的數(shù)據(jù)?

2.單個(gè)文件大小限制16M?

3.高度事務(wù)的系統(tǒng)?

4.傳統(tǒng)商業(yè)智能應(yīng)用

MongoDB與其他數(shù)據(jù)庫區(qū)別

MongoDB安裝

在這里胧弛,主要講解的是win下安裝,關(guān)于Linux下安裝侠畔,隨后會添加上结缚。?

下載網(wǎng)址:官方網(wǎng)站(https://www.mongodb.org/downloads/#production)?

在這里使用的是win32?


筆者下載老長時(shí)間才下完,估計(jì)是個(gè)人網(wǎng)速問題软棺,?



安裝好之后掺冠,安裝目錄下,發(fā)現(xiàn)有如下目錄?

配置path路徑[可選]

配置path路徑目的便于码党,直接可以再命令提示符輸入mongoDB命令,不需要每次在切換到mongoDB的bin目錄斥黑。在[我的電腦]右鍵揖盘,選擇[屬性]=>[高級系統(tǒng)設(shè)置]=>[高級]=>[環(huán)境變量設(shè)置]=>系統(tǒng)變量里面的[path]修改,添加mongoDB的bin目錄,我添加的目錄是’C:\Program Files\MongoDB\Server\3.2\bin’?

操作步驟截圖如下:?

啟動MongDB服務(wù)端

參照官方網(wǎng)站:https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#install-mongodb-community-edition?

啟動MongDB步驟如下

設(shè)置MongDB執(zhí)行環(huán)境

官方原話如下:?

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)建目錄如下?

啟動mongoDB(針對服務(wù)端)

官方原話如下:?

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)如下界面力奋,代碼安裝成功榜旦。?

連接MongoDB(針對客戶端)

官方原話如下:?

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代碼幌墓。如下圖?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末横堡,一起剝皮案震驚了整個(gè)濱河市秕铛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌条辟,老刑警劉巖弹渔,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胳施,死亡現(xiàn)場離奇詭異,居然都是意外死亡捞附,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進(jìn)店門您没,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸟召,“玉大人,你說我怎么就攤上這事氨鹏∨纺迹” “怎么了?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵仆抵,是天一觀的道長跟继。 經(jīng)常有香客問我,道長镣丑,這世上最難降的妖魔是什么舔糖? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮莺匠,結(jié)果婚禮上金吗,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好摇庙,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布旱物。 她就那樣靜靜地躺著,像睡著了一般卫袒。 火紅的嫁衣襯著肌膚如雪宵呛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天夕凝,我揣著相機(jī)與錄音宝穗,去河邊找鬼。 笑死迹冤,一個(gè)胖子當(dāng)著我的面吹牛讽营,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播泡徙,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼橱鹏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了堪藐?” 一聲冷哼從身側(cè)響起莉兰,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎礁竞,沒想到半個(gè)月后糖荒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡模捂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年捶朵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狂男。...
    茶點(diǎn)故事閱讀 40,742評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡综看,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岖食,到底是詐尸還是另有隱情红碑,我是刑警寧澤,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布泡垃,位于F島的核電站析珊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蔑穴。R本人自食惡果不足惜忠寻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望存和。 院中可真熱鬧锡溯,春花似錦赶舆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至倡蝙,卻和暖如春九串,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背寺鸥。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工猪钮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胆建。 一個(gè)月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓烤低,卻偏偏與公主長得像,于是被迫代替她去往敵國和親笆载。 傳聞我的和親對象是個(gè)殘疾皇子扑馁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容