Maison >interface Web >js tutoriel >ORM et migration/ajout de données à la base de données MySql à partir de MongoDb à l'aide de TypeOrm en javaScript

ORM et migration/ajout de données à la base de données MySql à partir de MongoDb à l'aide de TypeOrm en javaScript

Linda Hamilton
Linda Hamiltonoriginal
2024-12-23 17:20:18824parcourir

Qu'est-ce que l'ORM ?
Le mappage relationnel objet ou simplement ORM est une bibliothèque ou un outil qui nous aide à interagir avec les bases de données sans écrire de requêtes de base de données brutes.

Au lieu de gérer directement les tables et les lignes de la base de données, nous travaillons avec certains objets dans notre code et l'ORM traduit ces objets en requêtes de base de données, et lorsque les données sont récupérées de la base de données, l'ORM mappe les données en objets.

ORM crée un pont entre les programmes orientés objet et les bases de données relationnelles.

Cas d'utilisation :
Si nous créons une application javaScript/TypeScript et lorsque nous avons besoin d'une base de données pour les services backend, nous pouvons utiliser un ORM pour connecter notre application à la base de données.

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

quelques ORM utilisés dans différentes langues sont :

  1. JavaScript/TypeScript : TypeOrm, Sequelize
  2. Python : Django ORM, SQLAlchimie
  3. Java : Hiberner

Pourquoi devrions-nous utiliser des ORM dans notre application ?

  1. Améliore la sécurité, les outils ORM sont conçus pour éliminer la possibilité d'attaques par injection SQL
  2. vous écrirez moins de code en utilisant les outils ORM qu'avec SQL.
  3. Avec TypeORM, passer d'une base de données à une autre (par exemple, MySQL vers PostgreSQL) est simple et nécessite des modifications minimes, ce qui le rend hautement adaptable aux projets dont les exigences en matière de base de données évoluent.

Comprenons maintenant comment nous pouvons ajouter des données de mongodb à la base de données Mysql en utilisant TypeOrm en javaScript.

La première chose que nous devons faire est de définir la connexion pour MySql et MongoDb

Définissez d'abord la configuration à l'aide de DataSource qui se connectera à la base de données MySql à l'aide des informations d'identification et des informations d'hôte spécifiées. Elle mappe également les classes d'entités à la table de base de données, activant ainsi la fonctionnalité orm. Voici le code pour cela.

Je vais prendre un modèle universitaire simple sur lequel j'ai travaillé pour vous le faire mieux comprendre.

nom du fichier : 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
}); 

Connectez-vous maintenant à la base de données MySQL en utilisant les informations d'identification et les configurations définies dans sqlDataSource. Voici le code pour cela

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);

    }
}

écrivez toujours votre code dans un bloc try catch avec les journaux appropriés, ce qui vous aidera à déboguer votre code plus rapidement, au cas où vous feriez des erreurs.

Assurez-vous également que vous disposez d'une connexion appropriée à la base de données mongoDb avant de continuer.

Définissez d'abord les schémas de votre table dans un dossier séparé, laissez-moi le nommer sqlmodels et à l'intérieur, créez les pages pour vos modèles.
Nous devons importer ce fichier dans le fichier connect.js dans lequel nous avons écrit le code de connexion (premier code)

Voici le morceau de code pour le schéma universitaire

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

        }
    }

})

Assurez-vous que votre connexion mongoDb est définie et que les schémas sont également définis pour cela.

Maintenant, la dernière et importante chose que nous devons faire est d'écrire la fonction qui récupérera les données de mongoDb et les ajoutera aux tables 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
}); 

Ici, j'ai pris les données dans des mandrins, puis je les ai insérées dans des tableaux, cela sera utile si vous traitez une grande quantité de données, car récupérer une grande quantité de données à la fois n'est pas réalisable dans mongoDb.

Comme il s'agit de mon premier blog, j'apprécie vos suggestions et vos commentaires pour m'améliorer.
Merci d'avoir lu ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn