MongoDB - 數據管理

數據的備份、恢復以及導出、導入是數據庫管理工作中的重要內容,MongoDB提供了一整套的工具來完成這些工作。

1.數據備份mongodump

mongodump用于數據備份,它的工作原理是對MongoDB進行普通查詢后將結果寫入文件。

mongodump -h 127.0.0.1:27017 -d db_name -o /tmp/

還可以通過-c及-q選項指定需要備份的集合和篩選條件

mongodump -d test -c user -q "{name:'tom'}" -o /tmp/

備份執行完成后,會在-o指定的目錄下以數據庫名創建一個目錄,數據文件存放在這個目錄中。

mongodump的更多用法可以通過--help查看

mongodump --help

2.數據恢復mongorestore

mongorestore與mongodump配合使用,mongorestore用于數據恢復的文件就是mongodump備份的數據文件。

mongorestore -h 127.0.0.1:27017 -d test /tmp/test --drop

--drop表示如果數據庫已存在則刪除原數據庫,不加--drop參數則會將用于恢復的數據庫與原數據庫合并。

3.數據導出mongoexport

mongodump主要是針對庫的備份,MongoDB還提供了針對集合的備份工具mongoexport。mongoexport比較靈活,可以指定導出的格式已經導出的字段。

  • 導出JSON格式
mongoexport -d test -c user -o /tmp/test.user.dat
  • 導出CSV格式
mongoexport -d test -c user --csv -f _id,name,age -o /tmp/test.user.csv

另外,mongoexport也可以使用-q參數增加篩選條件。

4.數據導入mongoimport

mongoimport與mongoexport配合,使用mongoexport導出的備份文件進行數據恢復。

  • JSON格式數據導入
mongoimport -d test -c user --type json /tmp/test.user.dat --upsert

--type參數的默認值是json,如果導入json格式數據,可以不使用。
--upsert表示更新現有數據,如果部使用--upsert,導入數據時遇到_id重復時不會插入數據。另外也可以使用--drop刪除原數據。

  • CSV格式數據導入
mongoimport -d test -c user --type csv --headerline --file /tmp/test.user.csv --drop

其中--headerline表示不導入csv文件的第一行,因為csv文件第一行為列名。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容