python连接mongodb数据库、解析数据、写入csv,python_mongoDB数据迁移

迁移方法一

使用mongo自带命令来迁移数据,思路是先导出集合数据再导入到数据库中

导出命令:mongoexport

语法:mongoexport -d dbname -c collectionname -o filepath --type json/csv -f field

-d:数据库名

-c:集合名称

-o : 导出数据文件的路径

-type : 导出数据类型,默认json

导入命令:mongoimport

语法:mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field

-d:数据库名

-c:集合名称

--file : 选择导入的文件

-type : 文件类型,默认json

-f : 字段,type为csv是必须设置此项

环境win10;

运行cmd cd到目录mongodb的bin目录:

连接远程mongodb:

连接命令:mongo -u username -p pwd host:post/database(数据库名)

当该用户有相应权限时,可以查看collection==>查看集合命令:show collections

导出命令:mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径

详细解释:

-h:mongodb所在的服务器地址(必须指定端口),不指定的话就是本地的127.0.0.1:27017

-u:用户名

-p:密码

-d:需要备份的数据库(导出整个mongodb就去掉)

-o:备份的数据存放的位置

mongodump备份还原数据库

格式: mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径

--drop是先删除所有的数据,再恢复,不需要删除可不加;

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

命令格式:mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段 -q 条件导出 --csv -o 文件名的具体路径(后缀格式可以是.dat或.csv);

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

1.还原整表导出的非csv文件

命令格式:mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsert --drop 文件名的具体路径 (--drop当不需要删除源文件可不加)

2.还原部分字段的导出文件

命令格式:mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsertFields 字段 --drop 文件名的具体路径 (--drop当不需要删除源文件可不加)

3.还原导出的csv文件(导出数据时如果不加--csv选项,导出的数据就会存在很多双引号,导入就会失败)

命令格式:mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --type 类型(csv) --headerline --upsert --drop 文件名的具体路径

注意:如果数据库存在数据,要导入最新的数据,则需要加--upsert选项,会更新数据,否则会报错(提示重复键错误收集)

示例#

一、单集合 导出_导入

mongoexport -d 数据库名 -c 集合名 -o 导出文件名 --type 导出文件格式

①数据导出: mongoexport -d database1-c collection1-o aaa.json --type json

mongoexport -d 数据库名 -c 集合名 -o 导入文件名.json --type json

②数据导入: mongoimport -d database2-c collection1--file aaa.json --type json

二、全DB数据 导出_导入

mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径(文件夹)

①数据导出: mongodump -d database1-o logoDatabase

mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径(bson所在文件夹)

②数据导入: mongorestore -d database2--drop logoDatabase/logoDetect

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值