遷移方法一
使用mongo自帶命令來遷移數據,思路是先導出集合數據再導入到數據庫中
導出命令:mongoexport
語法:mongoexport -d dbname -c collectionname -o filepath --type json/csv -f field
-d:數據庫名
-c:集合名稱
-o : 導出數據文件的路徑
-type : 導出數據類型,默認json
導入命令:mongoimport
語法:mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field
-d:數據庫名
-c:集合名稱
--file : 選擇導入的文件
-type : 文件類型,默認json
-f : 字段,type為csv是必須設置此項
mongodb遠程數據庫的連接以及備份導入導出數據
環境win10;
運行cmd cd到目錄mongodb的bin目錄:
連接遠程mongodb:
連接命令:mongo -u username -p pwd host:post/database(數據庫名)
當該用戶有相應權限時,可以查看collection==>查看集合命令:show collections
導出命令:mongodump -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -o 文件存在路徑
詳細解釋:
-h:mongodb所在的服務器地址(必須指定端口),不指定的話就是本地的127.0.0.1:27017
-u:用戶名
-p:密碼
-d:需要備份的數據庫(導出整個mongodb就去掉)
-o:備份的數據存放的位置
mongodump備份還原數據庫
格式: mongorestore -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 --drop 文件存在路徑
--drop是先刪除所有的數據,再恢復,不需要刪除可不加;
mongoexport導出表,或導出表中部分字段:
命令格式:mongoexport -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -c 表名 -f 字段 -q 條件導出 --csv -o 文件名的具體路徑(后綴格式可以是.dat或.csv);
mongoimport導入表,或者表中部分字段 :
1.還原整表導出的非csv文件
命令格式:mongoimport -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -c 表名 --upsert --drop 文件名的具體路徑 (--drop當不需要刪除源文件可不加)
2.還原部分字段的導出文件
命令格式:mongoimport -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -c 表名 --upsertFields 字段 --drop 文件名的具體路徑 (--drop當不需要刪除源文件可不加)
3.還原導出的csv文件(導出數據時如果不加--csv選項,導出的數據就會存在很多雙引號,導入就會失敗)
命令格式:mongoimport -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -c 表名 --type 類型(csv) --headerline --upsert --drop 文件名的具體路徑
注意:如果數據庫存在數據,要導入最新的數據,則需要加--upsert選項,會更新數據,否則會報錯(提示重復鍵錯誤收集)