第49章:MongoDB-数据导入导出

本文介绍如何使用mongoexport和mongoimport工具进行MongoDB的数据导出与导入,并演示从MySQL迁移数据到MongoDB的过程,同时对比了这两种工具与mongodump/mongorestore的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

①导出工具mongoexport

Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。

该命令的参数如下:

参数

参数说明

-h

指明数据库宿主机的IP

-u

指明数据库的用户名

-p

指明数据库的密码

-d

指明数据库的名字

-c

指明collection的名字

-f

指明要导出那些列

-o

指明到要导出的文件名

-q

指明导出数据的过滤条件

--type

指定文件类型

--authenticationDatabase

验证数据的名称

mongoexport备份实践

备份app库下的vast集合

mongoexport -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d app -c vast -o /home/mongod/backup/vasts.dat

注:备份文件的名字可以自定义,默认导出了JSON格式的数据。

导出CSV格式的数据

mongoexport -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d app -c vast --type=csv -f id,name -o /home/mongod/backup/vast_csv.dat

 

②导入工具mongoimport

Mongodb中的mongoimport工具可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入JSON格式数据,也可以导入CSV格式数据。

该命令的参数如下:   

参数

参数说明

-h

指明数据库宿主机的IP

-u

指明数据库的用户名

-p

指明数据库的密码

-d

指明数据库的名字

-c

指明collection的名字

-f

指明要导出那些列

-o

指明到要导出的文件名

-q

指明导出数据的过滤条件

--drop

插入之前先删除原有的

--headerline

指明第一行是列名,不需要导入。

-j

同时运行的插入操作数(默认为1),并行

--authenticationDatabase

验证数据的名称

mongoimport恢复实践

将之前恢复的数据导入

mongoimport -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d app -c vast --drop /home/mongod/backup/vasts.dat

将之前恢复的CSV格式数据导入

mongoimport -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d app -c vast --type=csv --headerline --file vast_csv.dat
 

 

③mysql数据迁移至mongodb数据库

【实验】mysql数据迁移至mongodb数据库

将mysql数据库中的mysql下的user表导出。

select user,host,password from mysql.user into outfile '/tmp/user.csv' fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';

命令说明:

into outfile '/tmp/user.csv' ------导出文件位置 fields terminated by ','   ------字段间以,号分隔 optionally enclosed by '"'  ------字段用"号括起 escaped by '"'        ------字段中使用的转义符为" lines terminated by '\r\n';  ------行以\r\n结束

查看导出内容

[mongod@MongoDB tmp]$ cat user.csv "root","localhost","" "root","db02","" "root","127.0.0.1","" "root","::1","" "","localhost","" "","db02","" "repl","10.0.0.%","*23AE809DDACAF96AF0FD78ED04B6A265E05AA257" "mha","10.0.0.%","*F4C9AC49A736981AE2739FC2F4A1FD92B4F07929"

在mongodb中导入数据

mongoimport -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d app -c user -f user,host,password --type=csv --file /tmp/user.csv

查看导入的内容

[root@MongoDB tmp]# mongo --port 27017 MongoDB shell version: 3.2.8 connecting to: 127.0.0.1:27017/test > use app switched to db app > db.user.find() { "_id" : ObjectId("5a53206b3b42ae4683180009"), "user" : "root\tlocalhost" } { "_id" : ObjectId("5a53206b3b42ae468318000a"), "user" : "root\tdb02" } { "_id" : ObjectId("5a53206b3b42ae468318000b"), "user" : "root\t127.0.0.1" } { "_id" : ObjectId("5a53206b3b42ae468318000c"), "user" : "root\t::1" } { "_id" : ObjectId("5a53206b3b42ae468318000d"), "user" : "localhost" } { "_id" : ObjectId("5a53206b3b42ae468318000e"), "user" : "db02" } { "_id" : ObjectId("5a53206b3b42ae468318000f"), "user" : "repl\t10.0.0.%\t*23AE809DDACAF96AF0FD78ED04B6A265E05AA257" } { "_id" : ObjectId("5a53206b3b42ae4683180010"), "user" : "mha\t10.0.0.%\t*F4C9AC49A736981AE2739FC2F4A1FD92B4F07929" }

到此数据迁移完成。

 

④mongoexport/mongoimport与mongodump/mongorestore的对比

1 mongoexport/mongoimport导入/导出的是JSON格式,而mongodump/mongorestore导入/导出的是BSON格式。

2 JSON可读性强但体积较大,BSON则是二进制文件,体积小但对人类几乎没有可读性。

在一些mongodb版本之间,BSON格式可能会随版本不同而有所不同,所以不同版本之间用mongodump/mongorestore可能不会成功,具体要看版本之间的兼容性。当无法使用BSON进行跨版本的数据迁移的时候,使用JSON格式即mongoexport/mongoimport是一个可选项。跨版本的3 3 mongodump/mongorestore并不推荐,实在要做请先检查文档看两个版本是否兼容(大部分时候是的)。

4 JSON虽然具有较好的跨版本通用性,但其只保留了数据部分,不保留索引,账户等其他基础信息。使用时应该注意

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 

 

转载于:https://www.cnblogs.com/Lucky-stars/p/10598430.html

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值