什么是MongoDB ?
MongoDB 是由C++語言編寫的陌僵,是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫系統(tǒng)。
在高負(fù)載的情況下猜欺,添加更多的節(jié)點(diǎn)晚伙,可以保證服務(wù)器性能吮龄。
MongoDB 旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。
MongoDB 將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔咆疗,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對(duì)組成漓帚。MongoDB 文檔類似于 JSON 對(duì)象。字段值可以包含其他文檔午磁,數(shù)組及文檔數(shù)組尝抖。
主要特點(diǎn)
- MongoDB的提供了一個(gè)面向文檔存儲(chǔ),操作起來比較簡(jiǎn)單和容易迅皇。
- 你可以在MongoDB記錄中設(shè)置任何屬性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")來實(shí)現(xiàn)更快的排序昧辽。
- 你可以通過本地或者網(wǎng)絡(luò)創(chuàng)建數(shù)據(jù)鏡像,這使得MongoDB有更強(qiáng)的擴(kuò)展性登颓。
- 如果負(fù)載的增加(需要更多的存儲(chǔ)空間和更強(qiáng)的處理能力) 搅荞,它可以分布在計(jì)算機(jī)網(wǎng)絡(luò)中的其他節(jié)點(diǎn)上這就是所謂的分片。
- Mongo支持豐富的查詢表達(dá)式框咙。查詢指令使用JSON形式的標(biāo)記咕痛,可輕易查詢文檔中內(nèi)嵌的對(duì)象及數(shù)組。
- MongoDb 使用update()命令可以實(shí)現(xiàn)替換完成的文檔(數(shù)據(jù))或者一些指定的數(shù)據(jù)字段 喇嘱。
- Mongodb中的Map/reduce主要是用來對(duì)數(shù)據(jù)進(jìn)行批量處理和聚合操作茉贡。
- Map和Reduce。Map函數(shù)調(diào)用emit(key,value)遍歷集合中所有的記錄者铜,將key與value傳給Reduce函數(shù)進(jìn)行處理腔丧。
- Map函數(shù)和Reduce函數(shù)是使用Javascript編寫的放椰,并可以通過db.runCommand或mapreduce命令來執(zhí)行MapReduce操作。
- GridFS是MongoDB中的一個(gè)內(nèi)置功能愉粤,可以用于存放大量小文件砾医。
- MongoDB允許在服務(wù)端執(zhí)行腳本,可以用Javascript編寫某個(gè)函數(shù)科汗,直接在服務(wù)端執(zhí)行藻烤,也可以把函數(shù)的定義存儲(chǔ)在服務(wù)端绷雏,下次直接調(diào)用即可头滔。
- MongoDB支持各種編程語言:RUBY,PYTHON涎显,JAVA坤检,C++,PHP期吓,C#等多種語言早歇。
- MongoDB安裝簡(jiǎn)單。
這里推薦使用Brew來進(jìn)行安裝,畢竟可以將mongodb的服務(wù)交由brew來管理,只需要執(zhí)行
brew services start xxx(例如mongo) 來開啟
非常方便,具體步驟
- brew update
更新一下brew服務(wù),如果update失敗,可以把mac的host文件清空
brew install mongodb
brew services start
mongod --config /usr/local/etc/mongod.conf
mongod.conf
的內(nèi)容是關(guān)于MongoDB的設(shè)置
systemLog://log 目錄
destination: file
path: /usr/local/var/log/mongodb/mongo.log logAppend: true
storage://db目錄
dbPath: /usr/local/var/mongodb net://網(wǎng)絡(luò)地址 bindIp: 127.0.0.1
后面可以用mongodb的可視化工具來進(jìn)行操作了,推薦robo 3T
連接設(shè)置