1、mongoexport/mongoimport 备份工具
导入/导出的是JSON格式或者CSV格式
mongoexport具体用法如下所示:
-
-h:指定数据库主机的 IP 地址
-
-u:指定数据库的用户名
-
-p:指定数据库的密码
-
-d:指定数据库的名字
-
-c:指定 collection 的名字
-
-f:指定导出那些列
-
-o:指定到要导出的文件名
-
-q:指定导出数据的过滤条件
-
--authenticationDatabase admin ,用户认证数据库
准备数据,进行备份
> use test
> for(i=0;i<10000;i++){ db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new
Date()}); }
$ mongoexport -uroot -proot123 --port 38017 --authenticationDatabase admin -d test -c log -o /mongodb/log.json
2023-06-30T22:41:08.665+0800 connected to: mongodb://localhost:38017/
2023-06-30T22:41:08.792+0800 exported 9999 records
$ more /mongodb/log.json
{"_id":{"$oid":"649ee1ea168724a7ed39adaf"},"uid":1.0,"name":"mongodb","age":6.0,"date":{"$date":"2023-06-30T14:08:42.307Z"}}
{"_id":{"$oid":"649ee1eb168724a7ed39adb0"},"uid":2.0,"name":"mongodb","age":6.0,"date":{"$date":"2023-06-30T14:08:43.493Z"}}
{"_id":{"$oid":"649ee1eb168724a7ed39adb1"},"uid":3.0,"name":"mongodb","age":6.0,"date":{"$date":"2023-06-30T14:08:43.506Z"}}
默认导出 json 格式,需要导出CSV格式的数据,则需要使用--type=csv参数
Mongodb中的mongoimport工具可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入JSON格式数据,也可以导入CSV格式数据。具体使用如下所示:
-
-h:指定数据库主机的IP
-
-u:指定数据库的用户名
-
-p:指定数据库的密码
-
-d:指定数据库的名字
-
-c:指定 collection 的名字
-
-f:指定要导入那些列
-
-j, --numInsertionWorkers=
number of insert operations to run
concurrently (defaults to 1) 并行导入
$ mongoimport -uroot -proot123 --port 38017 --authenticationDatabase admin -d test -c log1 /mongodb/log.json
2023-06-30T22:55:39.921+0800 connected to: mongodb://localhost:38017/
2023-06-30T22:55:41.339+0800 9999 document(s) imported successfully. 0 document(s) failed to import.
导入 csv 格式文件
## csv 格式的文件头行,有列名字。
## --headerline:指明第一行是列名,不需要导入。
mongoimport -uroot -proot123 --port 38017 --authenticationDatabase admin -d test -c log5 --type=csv --headerline --file /mongodb/log.csv
## csv格式的文件头行,没有列名字
mongoimport -uroot -proot123 --port 27017 --authenticationDatabase admin -d test -c log6 -j 4 --type=csv -f id,name,age,date --file /mongodb/log.csv
异构数据库数据迁移,MySQL 和 mongodb 数据迁移,通过 csv 格式数据文件进行导入导出。
如何将MySQL大量表迁移到MongoDB
1、批量从MySQL导出多张表
$ mysqldump --fields-terminated-by ',' --fields-enclosed-by '"' world -T /tmp/
$ cd /data/backup
$ rm -rf /data/backup/*.sql
$ find ./ -name "*.txt" | awk -F "." '{print $2}' | xargs -i -t mv ./{}.txt ./{}.csv
2、 拼接语句
> select concat("mongoimport -uroot -proot123 --port 27017 --
authenticationDatabase admin -d ",table_schema, " -c ",table_name ," --type=csv
"," -f ", group_concat(column_name) ," --file /data/backup/",table_name
,".csv")
from information_schema.columns where table_schema='world' group by table_name;
3、mongodb 导入数据
2、mongodump/mongorestore工具
导入/导出的是BSON格式
标签:--,mongodb,备份,指定,导入,恢复,csv,数据库 From: https://www.cnblogs.com/zbc230/p/17518019.html