1,安裝html
下載解壓安裝包linux
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.5.tgz tar -xvzf mongodb-linux-x86_64-3.6.5.tgz mv mongodb-linux-x86_64-3.6.5 mongodb
環境變量配置mongodb
vi /etc/pfofile #最後加入mongo的bin目錄 export PATH=$PATH:/usr/local/mongodb/bin #刷新環境變量 source /etc/profile #建立mongodb的數據庫目錄 cd mongodb/ mkdir db
配置文件(etc/mongodb.cnf)數據庫
port=27017 #端口
dbpath= /usr/local/mongodb/db #數據庫存文件存放目錄
logpath= /usr/local/mongodb/mongodb.log #日誌文件存放路徑
logappend=true #使用追加的方式寫日誌
fork=false #不以守護程序的方式啓用,即不在後臺運行
maxConns=100 #最大同時鏈接數
noauth=true #不啓用驗證
#auth=true #啓用驗證,設置完管理員權限後啓用身份認證模式
journal=true #每次寫入會記錄一條操做日誌(經過journal能夠從新構造出寫入的數據)。
#即便宕機,啓動時wiredtiger會先將數據恢復到最近一次的checkpoint點,而後重放後續的journal日誌來恢復。
storageEngine=wiredTiger #存儲引擎有mmapv一、wiretiger、mongorocks
#bind_ip = 0.0.0.0 #這樣就可外部訪問了,例如從win10中去連虛擬機中的MongoDB
#啓動mongodb服務
mongod --config /etc/mongodb.cnf& #服務已啓動 [root@tencent01 bin]# ps -ef|grep mongodb root 21246 20823 25 11:27 pts/0 00:00:01 ./mongod --config /etc/mongodb.cnf root 21268 20823 0 11:27 pts/0 00:00:00 grep --color=auto mongodb
不啓用驗證方式,直接mongo命令就能夠登陸數據app
2,初始化權限運維
添加管理員帳戶ui
重啓mongodb服務,mongo命令仍能訪問數據庫可是不能進行任何操做spa
使用身份認證方式登陸以後,就能夠操做了 :mongo --port 27017 -u "root" -p "root123" -authenticationDatabase "admin".net
3,增刪查改3d
建庫,use db_name以後,建立任何一個集合以後,數據庫便可自動建立。
集合的增刪查改
db.my_collection.drop(); show collections; db.my_collection.insert({"user_id":"u001","name":"jack"}); db.my_collection.insert({"user_id":"u002","name":"jim","remark":"developer"}); db.my_collection.find({user_id:"u002"}) db.m_collection.update({user_id:"u002"},{$set:{remark:"senior developer"}}) db.my_collection.deleteMany({user_id:"u002"})
4,備份還原
mongodump -h 127.0.0.1:27017 -uroot -proot123 --authenticationDatabase admin -o /data/backup/ mongodump -h 127.0.0.1:27017 -uroot -proot123 --authenticationDatabase admin -d my_mongodb -o /data/backup/ mongorestore -h 127.0.0.1:27017 -uroot -proot123 --authenticationDatabase admin -d my_mongodb --drop /data/backup/
備份
還原
5,典型實際應用場景(本身YY出來的)
以博客園的文章爲例,一篇文章無非就是「做者」,「標題」,「內容」,「發佈時間」,「支持數」,「反對數」,「建立時間」,「評論」,等等元素
對於評論,包含了評論的「做者」,「內容」,「支持數」,「反對數」,「評論時間」等等,又是一個子文檔,歸結於文章的一部分,
若是用傳統的關係數據庫,看複雜程度,要表示這些信息,少說也要十張八張表,並且任何一個操做都不會太簡單。
若是用mongodb,一篇文章,全部的信息均可以用一條集合來表示,經過操做這條集合的不一樣元素來實現,極大地減小了對數據操做的簡化程度。
以下,是文章自己的信息
db.article.insert({"id":"1", "做者":"一個牛逼的人", "title":"博客園文章", "content":"很長的一篇文章", "支持":"0", "反對":"0", "create_date":"2018-6-14" });
添加評論信息(某個文檔下面添加子文檔)
db.article.update({"id":"1"}, { $push: { comments: { "id" : "·", "user_name" : "jack", "content" : "1樓的評論……", "支持":"0", "反對":"0", "create_date" : "20180614" } } }) db.article.update({"id":"1"}, { $push: { comments: { "id" : "2", "user_name" : "mike", "content" : "2樓的評論……", "支持":"0", "反對":"0", "create_date" : "20180614" } } })
總體來看,從安裝到使用,仍是很是簡單的,開源技術想都不用想,難點在於運維,高可用,以及各類未知的坑的處理。
參考:
權限:https://blog.csdn.net/u013451157/article/details/78765784
安裝:http://www.javashuo.com/article/p-pchgsjkf-ca.html
備份:http://www.javashuo.com/article/p-sylpknqa-hy.html