說明:本文全部操做均在win7下的MongoDB3.4.4版本中進行。mongodb
1、備份與恢復數據庫
1. 備份:json
mongodump -h IP --port 端口 -u 用戶名 -p 密碼 -d數據庫 -o 文件路徑服務器
(將使用某個用戶帳號將某個mongodb服務器上的某個數據庫備份到某個路徑下)rest
若是無需指定用戶,能夠去掉-u和-p;若是導出本機的數據庫,能夠去掉-h;若是是默認端口,能夠去掉--port;orm
若是想導出全部數據庫,能夠去掉-d。若是隻想備份某個集合,應在」-d 數據庫」後添加」-c 集合名」選項。blog
備份單個集合示例:索引
這個命令執行以後在D:\mongodb\backup目錄會生成一個'wjt'文件夾,裏面兩個文件:friend.bson和friend.metadata.json,前者存儲集合數據,後者存儲集合的元數據,如索引信息等。form
若是想根據查詢條件來備份數據,則應該添加’-q 查詢條件’選項。class
查詢條件備份示例:
(mongodb3.4.4查詢條件使用單引號會報錯:query is not in proper format)
2. 恢復:
mongorestore -h IP --port 端口 -u 用戶名 -p 密碼 -d數據庫 --drop 文件路徑
--drop:恢復的時候,先刪除當前數據庫數據,而後恢復備份的數據
(恢復後,備份後添加、修改的數據都會被刪除,慎用!若不使用該選項,則恢復過程可能會出現不少鍵重複的報錯,鍵重複的數據將不被恢復)
若是隻想備份某個集合,應在」-d 數據庫」後添加」-c 集合名」選項,備份某個集合的時候須要指定具體的bson文件,而不能只是指定文件目錄。
恢復單個集合示例:
導入成功以後,不只數據能夠導入,索引信息也會導入。
2、導出與導入
1. 導出:
mongoexport -h IP --port 端口 -u 用戶名 -p 密碼 -d數據庫 -c 表名 -f 字段名 -q 查詢條件 --type=csv -o 文件路徑
mongoexport導數據時必定要使用-c參數指定須要導出的集合,因此-o參數要指定一個具體的文件名而不能是目錄。
-f:只導出指定的字段,多個字段之間使用英文逗號分隔。
--type:指定導出文件的格式。目前只支持json和csv,指定導出csv格式時必定須要使用-f參數指定須要導出的字段,csv文件第一行爲字段名標題。
2. 導入:
(1)導入json文件:
mongoimport -h IP --port 端口 -u用戶名 -p 密碼 -d 數據庫 -c 表名 --upsert --drop 文件名
--upsert:存在則更新,不存在則插入。若只是導入部分字段,則將其換成--upsertFields參數並指定字段名列表。
(2)導入csv文件:
mongoimport -h IP --port 端口 -u用戶名 -p 密碼 -d 數據庫 -c 表名 --type=csv --headerline --upsert --drop 文件名
--headerline:去除csv文件中的標題行,或使用-fields參數指定字段名,但這兩個參數不能同時使用。