首页 >web前端 >js教程 >ORM 以及在 javaScript 中使用 TypeOrm 将数据从 MongoDb 迁移/添加到 MySql 数据库

ORM 以及在 javaScript 中使用 TypeOrm 将数据从 MongoDb 迁移/添加到 MySql 数据库

Linda Hamilton
Linda Hamilton原创
2024-12-23 17:20:18830浏览

什么是 ORM?
对象关系映射或简称 ORM 是一个库或工具,可以帮助我们与数据库交互,而无需编写原始数据库查询。

我们不是直接管理数据库表和行,而是在代码中使用一些对象,ORM 将这些对象转换为数据库查询,当从数据库检索数据时,ORM 将数据映射回对象。

ORM 在面向对象程序和关系数据库之间架起了一座桥梁。

用例:
如果我们正在创建一个 javaScript/TypeScript 应用程序,并且当我们需要数据库用于后端服务时,那么我们可以使用 ORM 将我们的应用程序连接到数据库。

ORM and Migrating/Adding Data to MySql Database from MongoDb using TypeOrm in javaScript

在不同语言中使用的几个 ORM 是:

  1. JavaScript/TypeScript:TypeOrm、Sequelize
  2. Python:Django ORM、SQLAlchemy
  3. Java:休眠

为什么我们应该在我们的应用程序中使用 ORM?

  1. 提高安全性,ORM工具的构建是为了消除SQL注入攻击的可能性
  2. 使用 ORM 工具比使用 sql 编写的代码更少。
  3. 使用 TypeORM,从一个数据库切换到另一个数据库(例如,从 MySQL 到 PostgreSQL)非常简单,并且只需要很少的更改,使其能够高度适应不断变化的数据库需求的项目。

现在让我们了解如何使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn