什么是MongoDB ?
MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng)。
在高負(fù)載的情況下,添加更多的節(jié)點,可以保證服務(wù)器性能。
MongoDB 旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。
MongoDB 將數(shù)據(jù)存儲為一個文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對組成。MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。
主要特點
- MongoDB的提供了一個面向文檔存儲,操作起來比較簡單和容易。
- 你可以在MongoDB記錄中設(shè)置任何屬性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")來實現(xiàn)更快的排序。
- 你可以通過本地或者網(wǎng)絡(luò)創(chuàng)建數(shù)據(jù)鏡像,這使得MongoDB有更強(qiáng)的擴(kuò)展性。
- 如果負(fù)載的增加(需要更多的存儲空間和更強(qiáng)的處理能力) ,它可以分布在計算機(jī)網(wǎng)絡(luò)中的其他節(jié)點上這就是所謂的分片。
- Mongo支持豐富的查詢表達(dá)式。查詢指令使用JSON形式的標(biāo)記,可輕易查詢文檔中內(nèi)嵌的對象及數(shù)組。
- MongoDb 使用update()命令可以實現(xiàn)替換完成的文檔(數(shù)據(jù))或者一些指定的數(shù)據(jù)字段 。
- Mongodb中的Map/reduce主要是用來對數(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中的一個內(nèi)置功能,可以用于存放大量小文件。
- MongoDB允許在服務(wù)端執(zhí)行腳本,可以用Javascript編寫某個函數(shù),直接在服務(wù)端執(zhí)行,也可以把函數(shù)的定義存儲在服務(wù)端,下次直接調(diào)用即可。
- MongoDB支持各種編程語言:RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。
- MongoDB安裝簡單。
這里推薦使用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è)置

image.png