我在Spring 4 MVC + Hibernate中使用MongoDB创建了我的项目。现在,我必须用MySQL将它转换成Hibernate。我的问题是我有太多的MongoDB集合bson和json的格式。我怎样才能将该文件转换为MySQL表格格式?那可能吗?将mongoDB集合转换为mySQL数据库
回答
MongoDB集合中的文档代表项目中某些类(POJO,域对象等)的序列化表单。据推测,您从MongoDB中读取这些数据将其反序列化为其类的形式并将其用于您的项目中,例如将其显示给最终用户,在计算中使用它,从中生成报告等。
现在,您希望在MySQL中托管该数据,因此您想知道如何将数据从MongoDB迁移到MySQL,但是因为持久格式完全不同,所以你想知道如何做到这一点。
这里有两种选择:
- 使用你的应用程序代码来读取从MongoDB中的数据,deserialise到你的类,然后使用JDBC或ORM映射层等数据写入到MySQL
- 使用mongoexport从MongoDB中导出数据(采用JSON格式),然后编写某种适配器,该适配器能够将此数据映射为您的MySQL数据模型所需的格式。
这些方法之间的非函数(特别是读写方面)将有所不同,但从根本上说,两种方法都非常相似;他们都(1)从MongoDB中读取; (2)将文档数据映射到关系模型; (3)将映射的数据写入MySQL。这个流程最棘手的方面是没有。 2,因为只有你了解你的数据和你的关系模型,没有工具可以神奇地为你做这件事。第三方工具如何充分了解您的文档模型和关系模型以便能够为您执行此转换?
您可以调查MongoDB JDBC驱动程序或使用类似Apache Drill的方法来帮助您在Mongo数据库上进行JDBC查询。因为这些可能会返回java.sql.ResultSet
您将会处理更适合写入MySQL的结果格式,但它可能仍然不符合您的目标关系模型,因此您仍然需要某种形式的转换代码。
Mongodb是一个非关系数据库,而MySQL是关系数据库。关键区别在于非关系数据库包含可以包含层次结构的文档(JSON对象),关系数据库期望对象被规范化并分解为表格。因此,不可能简单地将MongoDB中的bson数据转换为MySQL将理解的内容。您将需要编写一些代码来读取MongoDB中的数据并将其写入MySQL。
你能告诉我在哪个平台上?因为两个数据库都不一样。 – Harsh
- 1. 将ASP.NET MDF转换为MySQL数据库?
- 2. 将SQL Server数据库转换为MySQL
- 3. 无法将聚合查询从MongoDB转换为Spring数据MongoDb
- 4. 使用Rmongo将数据库从MongoDB转换为R数据框
- 5. 将SQL Server数据库转换为MYSQL数据库
- 6. 将AWS RDS数据库转换为InnoDB,数据库“mysql”是否需要转换?
- 7. 将集合转换成数据网格
- 8. 如何将数组转换为集合
- 9. 将整数集合转换为范围
- 10. 将数据集转换为可观察集合
- 11. 如何仅将数据库的模式转换为数据集?
- 12. 使用数据将MySql数据库转换为MS SQL Server 2005?
- 13. MongoDB将mapReduce转换为聚合
- 14. 如何将MySQL数据库转储转换为新的PG数据库?
- 15. 将xy数据集转换为数组
- 16. 如何将MongoDB集合转换为元素值上的对象?
- 17. 无法将MongoDB集合转换为列表
- 18. 将mysql数据转换为数组?
- 19. MySQL数据库 - 字符集和归类转换为utf8mb4和utf8mb4_unicode_ci?
- 20. mongodb聚合转换为int
- 21. 如何将记录集从数据库转换为数组?
- 22. 将数据集转换为XSLT
- 23. 将XML转换为数据集
- 24. 将JSON转换为.NET数据集
- 25. 将字符串转换为数据集
- 26. 如何将JavaPairRDD转换为数据集?
- 27. 将mysql数据库转换为特定格式的php数组
- 28. 将MySQL数据集转换为字符串
- 29. MySQL将latin1数据转换为UTF8
- 30. 将Java集合转换为Clojure数据结构
谢谢,所以我必须为此编写代码。对?我正在寻找任何可以转换它的应用程序或任何工具。因为如果我必须编写任何代码,那么我必须声明所有的东西,比如数据类型,主键和所有东西。 – Harsh
我已经更新了答案,以解决第三方工具能够为您执行转换的可能性。 – glytching