需要注意的地方:
1,不需要进入mongo命令行之后,就可以直接使用上面的2个导入导出命令。
2,导入导出的json文件,你不要随意换行,导出来的就是一行一条数据,你就原封不动的给修改完直接保存,不要换行。不要使用txt这么low的编辑器啦,换个高级点的编辑器吧。
更多内容请致官方地址:https://docs.mongodb.com/v2.2/reference/mongoexport/
导出:mongoexport
1、语法:
mongoexport -d dbname -c collectionname -o file --type json/csv -f field
参数说明:
- -d :数据库名
- -c :collection名
- -o :输出的文件名
- --type : 输出的格式,默认为json
- -f :输出的字段,如果-type为csv,则需要加上-f "字段名"
2、示例:
sudo mongoexport -d mongotest -c users -o /home/python/Desktop/mongoDB/users.json --type json -f "_id,user_id,user_name,age,status"
导入:mongoimport
1、语法:
mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field
参数说明:
- -d :数据库名
- -c :collection名
- --type :导入的格式默认json
- -f :导入的字段名
- --headerline :如果导入的格式是csv,则可以使用第一行的标题作为导入的字段
- --file :要导入的文件
2、示例:
sudo mongoimport -d mongotest -c users --file /home/mongodump/articles.json --type json
备份:mongodump
1、语法:
mongodump -h dbhost -d dbname -o dbdirectory
参数说明:
- -h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
- -d: 需要备份的数据库实例,例如:test
- -o: 备份的数据存放位置,例如:/home/mongodump/,当然该目录需要提前建立,这个目录里面存放该数据库实例的备份数据。
2、实例:
sudo rm -rf /home/momgodump/
sudo mkdir -p /home/momgodump
sudo mongodump -h 0.0.0.0:27017 -d itcast -o /home/mongodump/
恢复:mongorestore
1、语法:
mongorestore -h dbhost -d dbname --dir dbdirectory
参数或名:
- -h: MongoDB所在服务器地址
- -d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
- --dir: 备份数据所在位置,例如:/home/mongodump/itcast/
- --drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!
2、实例:
mongorestore -h 0.0.0.0:27017 -d itcast_restore --dir /home/mongodump/itcast/
SHELL脚本文件
#!/bin/bash
read -p "输入远程地址用户名: " host_user
read -p "输入远程地址密码: " host_pwd
read -p "是否执行数据库导入? [y/n] " input
case $input in
[yY]*)
mkdir /Users/caiqi/Desktop/dbs
host="0.0.0.0"
port="27017"
local_db="test"
local_user="test"
local_pwd="test123"
#!/bin/bash
sudo mongoexport --host "$host" --port "$port" --username "$host_user" --password "$host_pwd" -d testdb -c test -o /Users/test/Desktop/dbs/documents.json --type json
sudo mongoimport --username "$local_user" --password "$local_pwd" -d "$local_db" -c test --file /Users/test/Desktop/dbs/documents.json --type json
rm -rf /Users/test/Desktop/dbs
echo "导入完成"
;;
[nN]*)
exit
;;
*)
exit
;;
esac