注册

Python中MySQL数据迁移到MongoDB脚本的方法

下面是Python中MySQL数据迁移到MongoDB脚本的详细攻略,包含两条示例说明:

准备工作

  1. 安装MySQL和MongoDB数据库

  2. 安装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的方法。