python | MongoDB備份恢復與導出導入

說明:本文全部操做均在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參數指定字段名,但這兩個參數不能同時使用。

相關文章
相關標籤/搜索