MongoDB导入导出

物理备份

物理备份是指将MongoDB数据库文件复制到备份服务器或存储设备上。MongoDB使用的是一种称为"copy-on-write"的技术,这意味着当修改MongoDB数据库时,MongoDB会将数据复制到一个新的文件中,而原始文件仍然保留不变。这使得可以在不中断服务的情况下备份MongoDB数据库。

 

物理备份使用mongodumpmongorestore命令行工具。mongodump命令将MongoDB数据库的数据导出到一个备份文件夹中,而mongorestore命令将备份数据恢复到MongoDB数据库中

 

以下是使用mongodump命令进行物理备份的示例:

 

mongodump --host <hostname> --port <port> --username <username> --password <password> --db <database> --out <output_directory>

上面的命令将MongoDB数据库的数据备份到output_directory文件夹中。

 

以下是使用mongorestore命令进行物理恢复的示例:

 

mongorestore --host <hostname> --port <port> --username <username> --password <password> --db <database> <input_directory>

 

上面的命令将input_directory文件夹中的MongoDB备份数据恢复到MongoDB数据库中

逻辑备份

逻辑备份是指将MongoDB数据库中的数据导出到一个格式化的文件中,例如JSON或CSV。逻辑备份可以使用MongoDB的导入和导出功能实现。逻辑备份可以使备份文件更加可读,但备份和恢复数据的速度通常比物理备份慢。

 

以下是使用mongoexport命令进行逻辑备份的示例:

mongoexport --host <hostname> --port <port> --username <username> --password <password> --db <database> --collection <collection> --out <output_file>

 

上面的命令将名为collection的MongoDB集合的数据导出到output_file文件中。

 

以下是使用mongoimport命令进行逻辑恢复的示例:

mongoimport --host <hostname> --port <port> --username <username> --password <password> --db <database> --collection <collection> --file <input_file>

上面的命令将`input_file中的数据导入到名为collection的MongoDB集合中。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mongoexport导出表,或者表中部分字段

 

1,常用命令格式

mongoexport -h IP --port 端口 -u 用户名 -p 密M -d 数据库 -c 表名 -f 字段 -q 条件导出 --csv -o 文件名

 

上面的参数好理解,重点说一下:


-f 导出指字段,以字号分割,-f name,email,age导出name,email,age这三个字段


-q 可以根查询条件导出,-q '{ "uid" : "100" }' 导出uid为100的数据


--csv 表示导出的文件格式为csv的,这个比较有用,因为大部分的关系型数据库都是支持csv,在这里有共同点

 

2,导出整张表

# mongoexport -d tank -c users -o /home/zhangy/mongodb/tank/users.dat
connected to: 127.0.0.1
exported 4 records

 

3,导出表中部分字段

# mongoexport -d tank -c users --csv -f uid,name,sex -o tank/users.csv

connected to: 127.0.0.1

exported 4 records

4,根据条件敢出数据

# mongoexport -d tank -c users -q '{uid:{$gt:1}}' -o tank/users.json

connected to: 127.0.0.1
exported 3 records

 

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

1,常用命令格式

 

1.1,还原整表导出的非csv文件
mongoimport -h IP --port 端口 -u 用户名 -p 密M -d 数据库 -c 表名 --upsert --drop 文件名
重点说一下--upsert,其他参数上面的命令已有提到,--upsert 插入或者更新现有数据


1.2,还原部分字段的导出文件
mongoimport -h IP --port 端口 -u 用户名 -p 密M -d 数据库 -c 表名 --upsertFields 字段 --drop 文件名
--upsertFields根--upsert一样


1.3,还原导出的csv文件
mongoimport -h IP --port 端口 -u 用户名 -p 密M -d 数据库 -c 表名 --type 类型 --headerline --upsert --drop 文件名
上面三种情况,还可以有其他排列组合的。

 

2,还原导出的表数据

# mongoimport -d tank -c users --upsert tank/users.dat
connected to: 127.0.0.1
Tue Dec 3 08:26:52.852 imported 4 objects

3,部分字段的表数据导入

# mongoimport -d tank -c users --upsertFields uid,name,sex tank/users.dat
connected to: 127.0.0.1
Tue Dec 3 08:31:15.179 imported 4 objects

4,还原csv文件

# mongoimport -d tank -c users --type csv --headerline --file tank/users.csv
connected to: 127.0.0.1
Tue Dec 3 08:37:21.961 imported 4 objects

 

posted @ 2023-07-16 15:53  chengxuyonghu  阅读(559)  评论(0编辑  收藏  举报