您现在的位置是:亿华云 > 数据库

如何使用Python将MySQL表数据迁移到MongoDB集合

亿华云2025-10-03 02:04:24【数据库】9人已围观

简介【.com快译】介绍MySQL 是一个 RDBMS 平台,它以规范化的方式以表格格式存储数据,而 MongoDB 是一个 NoSQL 数据库,它以无模式的方式将信息存储为按集合分组的文档。数据的表示方

【.com快译】介绍

MySQL 是何使一个 RDBMS 平台,它以规范化的将集合方式以表格格式存储数据,而 MongoDB 是数据一个 NoSQL 数据库,它以无模式的迁移方式将信息存储为按集合分组的文档。数据的何使表示方式完全不同,因此将 MySQL 表数据迁移到 MongoDB 集合听起来可能是将集合一项艰巨的任务。但是数据,Python 凭借其强大的迁移连接性和数据处理能力让这一切变得轻而易举。

在本文中,何使将详细的将集合讲解如何使用简单的 Python 脚本将 MySQL 表数据迁移到 MongoDB 集合所需的步骤。这些脚本是数据在 Windows 上使用 Python 3.9.5 开发的。但是迁移,它应该适用于任何平台上的何使任何 Python 3+ 版本一起使用。

步骤 1:安装所需的将集合模块

第一步是安装连接MySQL 和 MongoDB 数据库实例所需的模块。网站模板我们将使用mysql.connector连接到 MySQL 数据库。数据对于 MongoDB,使用pymongo,这是从 Python 连接到 MongoDB 的推荐模块。

如果所需模块尚未安装,请运行以下PIP命令来安装它们。

pip 安装 mysql 连接器 pip 安装 pymongo 

PIP 是 Python 包或模块的包管理器。

步骤2:从MySQL表中读取数据

第一步是从源 MySQL 表中读取数据,并以可用于将数据加载到目标 MongoDB 数据库中的格式进行准备。MongoDB 是一个 NoSQL 数据库,它将数据存储为 JSON 文档,因此最好以 JSON 格式生成源数据。值得一提的是,Python 具有强大的数据处理能力,可以轻松地将数据转换为 JSON 格式。

import mysql.connector  mysqldb = mysql.connector.connect(    host="localhost",    database="employees",    user="root",    password="" ) mycursor = mysqldb.cursor(dictionary=True) mycursor.execute("SELECT * from categories;") myresult = mycursor.fetchall()  print(myresult)

当脚本在没有任何错误的情况下完成时,输出的结果如下:

[    {        "id":4,       "name":"Medicine",       "description":"<p>Medicine<br></p>",       "created_at":"",       "updated_at":""    },    {        "id":6,       "name":"Food",       "description":"<p>Food</p>",       "created_at":"",       "updated_at":""    },    {        "id":8,       "name":"Groceries",       "description":"<p>Groceries<br></p>",       "created_at":"",       "updated_at":""    },    {        "id":9,       "name":"Cakes & Bakes",       "description":"<p>Cakes & Bakes<br></p>",       "created_at":d"",       "updated_at":""    } ]

请注意,输出的是一个 JSON 数组,因为我们将dictionary=True参数传递给了游标。服务器托管否则,结果将采用列表格式。现在有了 JSON 格式的源数据,就可以迁移到 MongoDB 集合。

步骤3:写入 MongoDB 集合

获得 JSON 格式的源数据后,下一步是将数据插入到 MongoDB 集合中。集合是一组文档,相当于 RDBMS 中表(或关系)。我可以通过调用insert_many()集合类的方法来实现,该方法返回插入文档的对象 ID 列表。请注意,当作为参数传递空列表时,此方法将引发异常,因此在方法调用之前进行长度检查。

import pymongo mongodb_host = "mongodb://localhost:27017/" mongodb_dbname = "mymongodb" myclient = pymongo.MongoClient(mongodb_host) mydb = myclient[mongodb_dbname] mycol = mydb["categories"] if len(myresult) > 0:         x = mycol.insert_many(myresult) #myresult comes from mysql cursor         print(len(x.inserted_ids))

完成此步骤后,检查一下 MongoDB 实例,以验证数据库和集合是否已创建,文档是否已插入。注意MongoDB 是无模式的,这就意味着不必定义模式来插入文档,模式是动态推断并自动创建的。高防服务器MongoDB 还可以创建代码中引用的数据库和集合(如果它们还不存在的话)。

步骤4:把数据放在一起

下面是从 MySQL 中读取表并将其插入到 MongoDB 中集合的完整脚本。

import mysql.connector import pymongo delete_existing_documents = True mysql_host="localhost" mysql_database="mydatabase" mysql_schema = "myschema" mysql_user="myuser" mysql_password="

很赞哦!(6658)