操作MongoDB的步驟
1.創(chuàng)建數(shù)據(jù)庫中數(shù)據(jù)的存儲目錄
2.啟動MongoDB的服務(wù)實例
3.創(chuàng)建數(shù)據(jù)庫
4.創(chuàng)建集合
5.創(chuàng)建文檔
核心思想:
? ? 1.分門別類的存儲數(shù)據(jù)
? ? 2.mongodb是以`集合`的概念來區(qū)分不同數(shù)據(jù)的,比如用戶集合,商品集合,訂單集合等等,不同的數(shù)據(jù)要放在不同的集合中去統(tǒng)一管理
? ? 3.集合里面存儲的可以認(rèn)為是一個數(shù)組
? ? 4.數(shù)組中的每一個對象,可以認(rèn)為就是JSON對象,在mongodb中我們稱之為 `文檔`
? ? 5.文檔的結(jié)構(gòu)可以隨意,但是必須統(tǒng)一,也就是說,同一個集合中,所有的文檔一定要遵守相同的數(shù)據(jù)結(jié)構(gòu)
其他:
? ? `集合`的作用就是用來隔離數(shù)據(jù),分門別類的存儲數(shù)據(jù)
連接:
連接方式1:使用MongoDB自帶的MongoDB后臺管理 Shell
? ? 在終端中輸入 mongo 或是 mongo --host 127.0.0.1 --port 27017
連接及操作方式2:使用圖形化客戶端工具:
? ? robomongo(跨平臺) : https://robomongo.org/downloa
基本操作命令:
show dbs
查看當(dāng)前服務(wù)實例上所有的數(shù)據(jù)庫
use 數(shù)據(jù)庫名稱
如果數(shù)據(jù)庫不存在,則創(chuàng)建數(shù)據(jù)庫,否則切換到指定數(shù)據(jù)庫。
db
查看當(dāng)前所處的數(shù)據(jù)庫
show collections
查看當(dāng)前數(shù)據(jù)庫中所有的集合
db.createCollection("集合名稱")
創(chuàng)建集合
db.集合名稱.insert({數(shù)據(jù)文檔})
插入的每一條文檔會自動幫我們生成一個_id字段,它是mongodb自動維護(hù)的,不需要我們關(guān)心
db.集合名稱.find()
查詢指定集合中所有的數(shù)據(jù)
可以通過 db.集合名稱.find().pretty() 美化輸出格式
默認(rèn)是查詢所有,可以通過:db.集合名稱.find({查詢條件}) 按條件查詢集合中的數(shù)據(jù)
db.集合名稱.update({更新條件}, {要更新的字段})
更新指定集合數(shù)據(jù),注意點(diǎn),要更新的字段一定要這樣寫 {$set:{字段的名稱:字段的值}},
db.集合名稱.remove({刪除條件})
刪除指定集合中的數(shù)據(jù)
exit 退出當(dāng)前操作
cls 清屏
注意點(diǎn):更新和刪除時一般都需要帶條件,除非是全部更新與全部刪除,不過全部更新與全部刪除這樣很危險,實際操作過程中很少
mongodb導(dǎo)出:
1、導(dǎo)出工具:mongoexport
1、概念:
? ? ? ? mongoDB中的mongoexport工具可以把一個collection導(dǎo)出成JSON格式或CSV格式的文件??梢酝ㄟ^參數(shù)指定導(dǎo)出的數(shù)據(jù)項,也可以根據(jù)指定的條件導(dǎo)出數(shù)據(jù)。
2、語法:
mongoexport -d dbname -c collectionname -o file --type json/csv -f field
參數(shù)說明:
-d :數(shù)據(jù)庫名
-c :collection名
-o :輸出的文件名
--type : 輸出的格式,默認(rèn)為json
-f :輸出的字段,如果-type為csv,則需要加上-f "字段名"
3、示例:
sudo mongoexport -d mongotest -c users -o /home/python/Desktop/mongoDB/users.json --type json -f? "_id,user_id,user_name,age,status"
2、數(shù)據(jù)導(dǎo)入:mongoimport
1、語法:
mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field
參數(shù)說明:
-d :數(shù)據(jù)庫名
-c :collection名
--type :導(dǎo)入的格式默認(rèn)json
-f :導(dǎo)入的字段名
--headerline :如果導(dǎo)入的格式是csv,則可以使用第一行的標(biāo)題作為導(dǎo)入的字段
--file :要導(dǎo)入的文件
2、示例:
sudo mongoimport -d mongotest -c users --file /home/mongodump/articles.json --type json
mongodb備份和恢復(fù)
MongoDB數(shù)據(jù)備份
在Mongodb中我們使用mongodump命令來備份MongoDB數(shù)據(jù)。該命令可以導(dǎo)出所有數(shù)據(jù)到指定目錄中。
mongodump命令可以通過參數(shù)指定導(dǎo)出的數(shù)據(jù)量級轉(zhuǎn)存的服務(wù)器。
語法
mongodump命令腳本語法如下:
mongodump -h dbhost -d dbname -o dbdirectory
-h:
MongDB所在服務(wù)器地址,例如:127.0.0.1,當(dāng)然也可以指定端口號:127.0.0.1:27017
-d:
需要備份的數(shù)據(jù)庫實例,例如:test
-o:
備份的數(shù)據(jù)存放位置,例如:c:\data\dump,當(dāng)然該目錄需要提前建立,在備份完成后,系統(tǒng)自動在dump目錄下建立一個test目錄,這個目錄里面存放該數(shù)據(jù)庫實例的備份數(shù)據(jù)。
MongoDB數(shù)據(jù)恢復(fù)
mongodb使用 mongorestore 命令來恢復(fù)備份的數(shù)據(jù)。
語法
mongorestore命令腳本語法如下:
mongorestore -h <hostname><:port> -d dbname <path>
--host <:port>, -h <:port>:
MongoDB所在服務(wù)器地址,默認(rèn)為: localhost:27017
--db , -d :
需要恢復(fù)的數(shù)據(jù)庫實例,例如:test,當(dāng)然這個名稱也可以和備份時候的不一樣,比如test2
--drop:
恢復(fù)的時候,先刪除當(dāng)前數(shù)據(jù),然后恢復(fù)備份的數(shù)據(jù)。就是說,恢復(fù)后,備份后添加修改的數(shù)據(jù)都會被刪除,慎用哦!
<path>:
mongorestore 最后的一個參數(shù),設(shè)置備份數(shù)據(jù)所在位置,例如:c:\data\dump\test。
你不能同時指定 <path> 和 --dir 選項,--dir也可以設(shè)置備份目錄。
--dir:
指定備份的目錄
你不能同時指定 <path> 和 --dir 選項。
例子:鎖的小程序后臺數(shù)據(jù)庫
mongodump -d lock -o /www/wwwroot
mongorestore -d lock D:\data\lock