mongo 备份 导入 导出

mongodump 数据库 备份

  • --authenticationDatabase方式
  • -h ip地址
  • -p 密码
  • -d 数据库 如果想导出所有数据库,可以去掉-d
  • -o 备份到磁盘路径
  • -u 用户名
  • --port 端口
mongodump --authenticationDatabase admin -u admin -p password123123 -h 172.1.1.1  -d database_name -o /usr/local/mongo/db/mongo-dump-document 

mongorestore 数据库 还原

  • -u 用户名
  • -p 密码
  • -h ip地址
  • -d 数据库
  • --dir 数据库的备份路径
mongorestore -u admin -p password123123 -h 192.168.0.1 --dir /usr/local/mongo/db/mongo-dump-document 

常用 导出表,或者表中部分字段

根据实际情况加上 --authenticationDatabase admin

# mongoexport导出表,或者表中部分字段
# mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段
# -q 条件导出 --csv -o 文件名 上面的参数好理解,重点说一下:
# -f 导出指字段,以字号分割,-f name,email,age导出name,email,age这三个字段
# -q 可以根查询条件导出,-q '{ "_id" : "10001" }' 导出uid为100的数据
# --csv 表示导出的文件格式为csv的,这个比较有用,因为大部分的关系型数据库都是支持csv,在这里有共同点

# 导出整张表
mongoexport -d database_name -c users -o /usr/local/mongo/db/mongo-dump-document/xxx/users.dat

# 导出表中部分字段
mongoexport -d database_name -c users --csv -f uid,name,sex -o xxx/users.csv

# 根据条件敢出数据
mongoexport -d database_name -c users -q '{uid:{$gt:1}}' -o xxx/users.json 


# 常用 mongoimport导入表,或者表中部分字段

# 还原整表导出的非csv文件
# --upsert 插入或者更新现有数据
mongoimport -h IP --port 端口 -u user_name -p 密码 -d database_name -c table_name --upsert --drop 文件名

# 还原部分字段的导出文件
# --upsertFields根--upsert一样
mongoimport -h IP --port 端口 -u user_name -p 密码 -d database_name -c table_name --upsertFields 字段 --drop 文件名  

# 还原导出的csv文件
mongoimport -h IP --port 端口 -u user_name -p 密码 -d database_name -c table_name --type 类型 --headerline --upsert --drop 文件名

# 还原导出的表数据
mongoimport -d database_name -c table_name --upsert xxx/users.dat 

# 部分字段的表数据导入
mongoimport -d database_name -c table_name  --upsertFields uid,name,sex  xxx/users.dat  

# 还原csv文件
mongoimport -d database_name -c table_name --type csv --headerline --file xxx/users.csv