快捷搜索:  汽车  科技

mongodb数据迁移到哪里(MongoDB系列9MongoDB数据迁移到MySQL)

mongodb数据迁移到哪里(MongoDB系列9MongoDB数据迁移到MySQL)MongoDB系列8:MongoDB集合的增量更新MongoDB存储引擎MongoDB安全实战之SSL协议加密MongoDB安全实战之网络安全加固MongoDB索引的介绍

前面系列文章:

mongodb安全实战之Kerberos认证

MongoDB Compass--MongoDB DBA必备的管理工具

MongoDB安全实战之审计

MongoDB安全实战之SSL协议加密

MongoDB安全实战之网络安全加固

MongoDB索引的介绍

MongoDB存储引擎

MongoDB系列8:MongoDB集合的增量更新

在实际应用中,经常会遇到各种数据库之间的数据迁移,其中有关系型数据库之间的迁移,也有非关系型数据库与关系型数据库之间的迁移。以下介绍MongoDB数据迁移到MySQL的一种方案:使用Python将MongoDB数据迁移到MySQL。

案例使用是Python 3.6版本,需要分别安装MongoDB数据库连接模块pymongo和MySQL数据库连接模块pymysql。

现有MongoDB的mongo_stream库下集合stream_table,文档数据如下:

mongodb数据迁移到哪里(MongoDB系列9MongoDB数据迁移到MySQL)(1)

同样,在MySQL的mongotomysql库下也有stream_table表,字段为id、name、age。需要将MongoDB的stream_table集合数据迁移到mysql的stream_table表。

Python代码如下:

代码说明:

#创建一个MongoDB数据库连接mongo_con;

mongo_con = pymongo.MongoClient(host=’192.168.195.131’ port=27017)

#创建一个MySQL数据库连接mysql_con,并指定连接用户root,连接密码qweasd,连接数据库mongotomysql;

mysql_con = pymysql.connect(“192.168.195.140” ”root” ”qweasd” ”mongotomysql”)

#指定MongoDB连接的库名;

mongo_db = mongo_con.mongo_stream

#指定MongoDB连接的集合stream_table;

mongo_collection = mongo_db.stream_table

#将stream_table集合文档数据,赋于rols。

rols = mongo_collection.find()

#使用for循环遍历rols结果集

for i in rols:

#声明一个mysql游标

mysql_cursor = mysql_con.cursor()

#由于MongoDB集合的文档相当于Python的字典,需要再使用一个for循环遍历每个文档的键,方便将数据插入MySQL表的对应的字段。

for key i in i.keys():

#判断筛选MongoDB的stream_table集合文档的键,并将相应的键值赋予相应的变量。

if key == '_id':

id = i[key]

elif key == 'name':

name = i[key]

elif key == 'age':

age = i[age]

#将数据插入到MySQL表并提交

mysql_cursor.execute('insert into stream_table values ("%s" "%s" "%s")' % (id name age))

mysql_con.commit()

执行以上代码:[root@master ~]# ./mongodb.py

mongodb数据迁移到哪里(MongoDB系列9MongoDB数据迁移到MySQL)(2)

以上结果显示,MongoDB的stream_table集合文档数据成功迁移到MySQL的stream_table表中。

小结:

有时候,为了数据处理的方便,需要将MongoDB数据迁移到关系型数据库上进行处理,本文介绍的借助Python程序实现MongoDB到MySQL数据库的数据迁移的方案,能够满足MongoDB简单的数据迁移需求。

猜您喜欢: