MongoDB是一個高效的基於分佈式文件存儲的數據庫,將數據存儲爲一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔相似於 JSON 對象。字段值能夠包含其餘文檔,數組及文檔數組,很適合和nodejs搭配。node
Mongoose是基於nodejs的一個mongodb對象模型工具,能夠很方便的對mongodb進行操做。
mysql
對比項 | MongoDB | MySQL |
---|---|---|
數據庫 | 數據庫(dataBase) | 數據庫(dataBase) |
表 | 集合(collection) | 二維表(table) |
表在中的一行數據 | 文檔(document) | 一條記錄(record) |
表字段 | 鍵(key) | 列(column) |
主外鍵 | 無 | Primary Key |
靈活度擴展性 | 高 | 差 |
表的關聯性 | 差 | 高 |
根據電腦操做系統位數下載對應的安裝包。安裝過程幾乎一路下一步就能夠安裝完成。通常默認安裝在C:\Program Files\MongoDB。linux
安裝完mongodb成後,在此,以安裝在c盤路徑下爲例,建立文件夾 C:\data\db。sql
在mongodb的安裝目錄的bin文件下,執行命令C:\Program Files\MongoDB\Server\3.2\bin mongod –dbpath c:\data\db,若是出現以下提示通常表示安裝成功,這樣mongodb的服務就啓動了,ctrl+c可關閉服務。mongodb
再建立文件夾C:\data\log和文件C:\data\mongod.cfg。
mongod.cfg文件的內容爲下:shell
1 |
systemLog: |
運行命令行執行mongod.cfg來制定數據庫和日誌文件目錄:
C:\Program Files\MongoDB\bin\mongod.exe –config 「C:\data\mongod.cfg」 –install數據庫
C:\Program Files\MongoDB\Server\3.2\bin net start MongoDB
啓動服務狀態下,瀏覽器打開 http://localhost:27017,若是出現如下內容,表示安裝及啓動mongodb服務成功。windows
C:\Program Files\MongoDB\Server\3.2\bin net stop MongoDBcentos
安裝路徑下,運行mongo進入命令模式,C:\Program Files\MongoDB\Server\3.2\bin mongo數組
1 |
db.help() 查看命令提示 |
x86_64 表示你的操做系統爲64位
1 |
$ uname -a |
1 |
$ curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz |
1 |
$ tar -zxvf mongodb-linux-x86_64-3.0.6.tgz |
1 |
$ mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb |
export PATH=/bin:$PATH
本文的安裝路徑在 /usr/local/mongodb,
因此運行
1 |
$ export PATH=/usr/local/mongodb/bin:$PATH |
mongodb的安裝需手動建立data存儲目錄,在此咱們在根目錄下建立data/mongo文件夾
1 |
$ mkdir -p /data/mongo |
而後在mongo文件夾裏建立mongodb.cnf配置文件,用來設置mongodb的數據庫路徑以及啓動參數等。
內容能夠以下。
其中,dbpath表示mongodb數據庫的路徑,logpath是數據庫日誌路徑,port表示鏈接端口,auth爲true表示經過密碼驗證。
其中注意,auth不設置或設置爲false的話,數據庫表示沒有密碼,能夠直接鏈接。本身測試的話能夠不設密碼,但正式項目中必定要設置密碼驗證,
不然任何人均可以輕易侵入你的數據庫。
1 |
dbpath=/data/mongo/ |
在/usr/local/mongodb/bin路徑下,運行命令,-f 後的路徑爲本身建立的mongodb配置文件(見第6步)
1 |
$ mongod -f /data/mongo/mongodb.cnf |
若是不建立mongodb.cnf的話,也能夠用加參數的方式啓動mongodb,效果和啓動配置文件同樣。但推薦配置文件的方式,修改和啓動都方便。
1 |
$ mongod -dbpath /data/mongo/ -logpath /data/mongo/mongo.log -logappend -fork -port 27017 -auth |
運行後打印相似以下,表示啓動mongodb成功
1 |
2018-04-24T08:55:06.486+0000 I JOURNAL [initandlisten] journal dir=/data/db/journal |
切入admin數據庫中,而後運行db.shutdownServer() 關閉數據庫。
有時關閉失敗,可能有其餘誤操做,這時在/data/mongo下運行rm -f mongod.lock刪掉 /data/mongo/mongod.lock文件,再重啓就行了。
1 |
$ use admin |
但有時運行db.shutdownServer()依然不能關閉數據庫,這是能夠採用一種強力的方法,用命令強行殺死mongodb的進程。
1 |
$ netstat -tln // 查看進程 |
1 |
mongod -f /data/mongo/mongodb.cnf |
啓動成功後會有successfully的提示符
默認安裝mongodb,若是直接建立數據庫的話,是沒有密碼的,在真實開發環境中,頗有必要爲數據庫設置密碼來保障安全。
Mongodb用戶有全局用戶和數據庫對應用戶。
mongodb有一個admin數據庫,用於建立全局用戶帳號,這個帳號能夠訪問可鏈接到其餘數據庫。
建立admin帳號
1 |
$ use admin // 切到admin數據庫 |
能夠在可視化工具裏經過admin帳號鏈接到全部的數據庫。
建立普通數據庫帳號,方式同建立admin帳號,只是要先切進到對應的數據庫。
1 |
$ use somedbname // 切到普通數據庫 |
項目開發中好比要鏈接某個數據庫:
1 |
mongodb://root:test2@127.0.0.1:27017/somedbname |
注意一點,若是密碼有@的話,須要轉譯成’%40’
==================================
補充:
若是想要進入MongoDB的Shell,須要運行/usr/local/mongodb/bin/mongo
每次都要打這麼一長串命令太麻煩了 因此乾脆在系統bin目錄下給它創建一個軟連接吧
ln -s /usr/local/mongodb/bin/mongo /bin/mongo
這樣一來 無論在哪一個目錄下 若是想要進入MongoDB的shell 只須要打"mongo"命令就能夠了