什么是 ORM?
对象关系映射或简称 ORM 是一个库或工具,可以帮助我们与数据库交互,而无需编写原始数据库查询。
我们不是直接管理数据库表和行,而是在代码中使用一些对象,ORM 将这些对象转换为数据库查询,当从数据库检索数据时,ORM 将数据映射回对象。
ORM 在面向对象程序和关系数据库之间架起了一座桥梁。
用例:
如果我们正在创建一个 javaScript/TypeScript 应用程序,并且当我们需要数据库用于后端服务时,那么我们可以使用 ORM 将我们的应用程序连接到数据库。
在不同语言中使用的几个 ORM 是:
为什么我们应该在我们的应用程序中使用 ORM?
现在让我们了解如何使用 javaScript 中的 TypeOrm 将数据从 mongodb 添加到 Mysql 数据库。
我们需要做的第一件事就是设置 MySql 和 MongoDb 的连接
首先使用 DataSource 定义配置,它将使用指定的凭据和主机信息连接到 MySql 数据库。它还将实体类映射到数据库表,从而启用 orm 功能。这是它的代码。
我将采用我所做的简单大学模型,以便让您更好地理解它。
文件名:connect.js
const { College } = require('./sqlmodels/College.model'); //taking model as a example here const sqlDataSource = new DataSource({ type: "mysql", host: "XXXX", port: 3306, username: 'myUserName', password: 'MyPassWord', database: 'MyDb', driver: require("mysql2"), connectTimeout: 10000, entities: [ College // define all your entities here ], synchronize: true, logging: false });
现在使用 sqlDataSource 中定义的凭据和配置连接到 MySQL 数据库。这是它的代码
module.exports.connectSQL = async function () { try { console.log("Trying to connect to SQL Database..."); await sqlDataSource.initialize(); console.log("Successfully connected to SQL Database"); } catch (error) { console.error("Error occured while connecting SQL", error); } }
始终在带有适当日志的 try catch 块中编写代码,这将帮助您更快地调试代码,以防出错。
在继续操作之前,还要确保您已正确连接 mongoDb 数据库。
首先在单独的文件夹中定义表的架构,让我将其命名为 sqlmodels,并在其中为您的模型创建页面。
我们需要将此文件导入到我们编写连接代码的 connect.js 文件中(第一个代码)
这是大学模式的代码
const { EntitySchema, Entity, Column } = require('typeorm'); module.exports.College = new EntitySchema({ name: 'College', tableName: 'College', columns: { _id: { primary: true, // true if _id is your primary key type: 'varchar', // define the type length: 255, }, college_name: { // define name of the column and its properties name: 'college_name', type: 'varchar', length: 255, default: 'NO COLLEGE', nullable: false } } })
确保您已设置 mongoDb 连接并且还为其定义了架构。
现在我们需要做的最后一件重要的事情是编写从 mongoDb 获取数据并将其添加到 sql 表的函数。
const { College } = require('./sqlmodels/College.model'); //taking model as a example here const sqlDataSource = new DataSource({ type: "mysql", host: "XXXX", port: 3306, username: 'myUserName', password: 'MyPassWord', database: 'MyDb', driver: require("mysql2"), connectTimeout: 10000, entities: [ College // define all your entities here ], synchronize: true, logging: false });
这里我将数据放入卡盘中,然后将它们插入表中,如果您正在处理大量数据,这将很有帮助,因为在 mongoDb 中一次获取大量数据是不可行的。
由于这是我的第一篇博客,欢迎您提出建议和反馈,以提高自己。
感谢您的阅读?
以上是ORM 以及在 javaScript 中使用 TypeOrm 将数据从 MongoDb 迁移/添加到 MySql 数据库的详细内容。更多信息请关注PHP中文网其他相关文章!