当前位置:首页 >综合 >如何使用Python将MySQL表数据迁移到MongoDB集合 如果所需模块尚未安装

如何使用Python将MySQL表数据迁移到MongoDB集合 如果所需模块尚未安装

2024-06-30 20:20:07 [百科] 来源:避面尹邢网

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

译文 作者:Shameel Ahmed 云计算 MongoDB 本文详细的何使讲解了如何在需要的地方获取MySQL 数据。

[[410477]]

【51CTO.com快译】介绍

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

如何使用Python将MySQL表数据迁移到MongoDB集合 如果所需模块尚未安装

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

如何使用Python将MySQL表数据迁移到MongoDB集合 如果所需模块尚未安装

步骤 1:安装所需的数据模块

如何使用Python将MySQL表数据迁移到MongoDB集合 如果所需模块尚未安装

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

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

  1. pip 安装 mysql 连接器 pip 安装 pymongo 

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

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

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

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

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

  1.    {  
  2.       "id":4, 
  3.       "name":"Medicine", 
  4.       "description":"<p>Medicine<br></p>", 
  5.       "created_at":"", 
  6.       "updated_at":"" 
  7.    }, 
  8.    {  
  9.       "id":6, 
  10.       "name":"Food", 
  11.       "description":"<p>Food</p>", 
  12.       "created_at":"", 
  13.       "updated_at":"" 
  14.    }, 
  15.    {  
  16.       "id":8, 
  17.       "name":"Groceries", 
  18.       "description":"<p>Groceries<br></p>", 
  19.       "created_at":"", 
  20.       "updated_at":"" 
  21.    }, 
  22.    {  
  23.       "id":9, 
  24.       "name":"Cakes & Bakes", 
  25.       "description":"<p>Cakes & Bakes<br></p>", 
  26.       "created_at":d"", 
  27.       "updated_at":"" 
  28.    } 

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

步骤3:写入 MongoDB 集合

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

  1. import pymongo 
  2.  
  3. mongodb_host = "mongodb://localhost:27017/" 
  4. mongodb_dbname = "mymongodb" 
  5.  
  6. myclient = pymongo.MongoClient(mongodb_host) 
  7. mydb = myclient[mongodb_dbname] 
  8. mycol = mydb["categories"] 
  9.  
  10. if len(myresult) > 0: 
  11.         x = mycol.insert_many(myresult) #myresult comes from mysql cursor 
  12.         print(len(x.inserted_ids)) 

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

步骤4:把数据放在一起

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

  1. import mysql.connector 
  2. import pymongo 
  3.  
  4. delete_existing_documents = True 
  5. mysql_host="localhost" 
  6. mysql_database="mydatabase" 
  7. mysql_schema = "myschema" 
  8. mysql_user="myuser" 
  9. mysql_password="

    (责任编辑:休闲)

    推荐文章
    热点阅读