下面是Python中MySQL数据迁移到MongoDB脚本的详细攻略,包含两条示例说明:
准备工作
-
安装MySQL和MongoDB数据库
-
安装Python的依赖包pymongo和pymysql
pip install pymongo pymysql
数据库连接
在Python中连接MySQL和MongoDB数据库的方法如下:
import pymysql
import pymongo
# 连接MySQL数据库
mysql_conn = pymysql.connect(
host='localhost',
user='root',
password='123456',
database='test',
charset='utf8'
)
# 连接MongoDB数据库
mongo_client = pymongo.MongoClient('mongodb://localhost:27017/')
mongo_db = mongo_client['test']
mongo_collection = mongo_db['test']
从MySQL中读取数据
在Python中从MySQL数据库中读取数据的方法如下:
mysql_cursor = mysql_conn.cursor()
mysql_cursor.execute('SELECT * FROM users')
for row in mysql_cursor:
print(row)
将MySQL数据转为MongoDB数据
在Python中将MySQL数据库中的数据转为MongoDB数据库中的数据的方法如下:
mongo_cursor = mongo_collection.find()
mongo_cursor.delete_many({})
mysql_cursor.execute('SELECT * FROM users')
for row in mysql_cursor:
user = {
'id': row[0],
'name': row[1],
'age': row[2]
}
mongo_collection.insert_one(user)
完整代码示例
将MySQL数据库中的users表中的数据迁移到MongoDB数据库中的users集合中的完整代码示例如下:
import pymysql
import pymongo
# 连接MySQL数据库
mysql_conn = pymysql.connect(
host='localhost',
user='root',
password='123456',
database='test',
charset='utf8'
)
# 连接MongoDB数据库
mongo_client = pymongo.MongoClient('mongodb://localhost:27017/')
mongo_db = mongo_client['test']
mongo_collection = mongo_db['test']
# 从MySQL数据库中读取数据
mysql_cursor = mysql_conn.cursor()
mysql_cursor.execute('SELECT * FROM users')
# 将MySQL数据转为MongoDB数据
mongo_cursor = mongo_collection.find()
mongo_cursor.delete_many({})
for row in mysql_cursor:
user = {
'id': row[0],
'name': row[1],
'age': row[2]
}
mongo_collection.insert_one(user)
# 关闭数据库连接
mongo_client.close()
mysql_conn.close()
另外一个示例,将MySQL数据库中的users表中的数据迁移到MongoDB数据库中的users集合中,但是只迁移年龄大于等于20岁的数据,完整代码示例如下:
import pymysql
import pymongo
# 连接MySQL数据库
mysql_conn = pymysql.connect(
host='localhost',
user='root',
password='123456',
database='test',
charset='utf8'
)
# 连接MongoDB数据库
mongo_client = pymongo.MongoClient('mongodb://localhost:27017/')
mongo_db = mongo_client['test']
mongo_collection = mongo_db['test']
# 从MySQL数据库中读取数据
mysql_cursor = mysql_conn.cursor()
mysql_cursor.execute('SELECT * FROM users WHERE age >= %s', (20,))
# 将MySQL数据转为MongoDB数据
mongo_cursor = mongo_collection.find()
mongo_cursor.delete_many({})
for row in mysql_cursor:
user = {
'id': row[0],
'name': row[1],
'age': row[2]
}
mongo_collection.insert_one(user)
# 关闭数据库连接
mongo_client.close()
mysql_conn.close()
希望这些例子能帮助你更好地了解Python中MySQL数据迁移到MongoDB的方法。