Heim > Web-Frontend > js-Tutorial > ORM und Migrieren/Hinzufügen von Daten zur MySql-Datenbank von MongoDb mithilfe von TypeOrm in JavaScript

ORM und Migrieren/Hinzufügen von Daten zur MySql-Datenbank von MongoDb mithilfe von TypeOrm in JavaScript

Linda Hamilton
Freigeben: 2024-12-23 17:20:18
Original
828 Leute haben es durchsucht

Was ist ORM?
Object Relational Mapping oder einfach ORM ist eine Bibliothek oder ein Tool, das uns hilft, mit Datenbanken zu interagieren, ohne rohe Datenbankabfragen zu schreiben.

Anstatt Datenbanktabellen und -zeilen direkt zu verwalten, arbeiten wir mit einigen Objekten in unserem Code und der ORM übersetzt diese Objekte in Datenbankabfragen, und wenn die Daten aus der Datenbank zurückgerufen werden, ordnet der ORM die Daten wieder Objekten zu.

ORM schafft eine Brücke zwischen objektorientierten Programmen und relationalen Datenbanken.

Anwendungsfälle:
Wenn wir eine JavaScript-/TypeScript-Anwendung erstellen und eine Datenbank für Backend-Dienste benötigen, können wir einen ORM verwenden, um unsere Anwendung mit der Datenbank zu verbinden.

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

Einige ORMs, die in verschiedenen Sprachen verwendet werden, sind:

  1. JavaScript/TypeScript: TypeOrm, Sequelize
  2. Python: Django ORM, SQLAlchemy
  3. Java: Ruhezustand

Warum sollten wir ORMs in unserer Anwendung verwenden?

  1. Verbessert die Sicherheit, ORM-Tools sind so konzipiert, dass sie die Möglichkeit von SQL-Injection-Angriffen ausschließen
  2. Bei Verwendung von ORM-Tools schreiben Sie weniger Code als bei SQL.
  3. Mit TypeORM ist der Wechsel von einer Datenbank zu einer anderen (z. B. MySQL zu PostgreSQL) unkompliziert und erfordert nur minimale Änderungen, wodurch es sich hervorragend an Projekte mit sich ändernden Datenbankanforderungen anpassen lässt.

Jetzt wollen wir verstehen, wie wir mithilfe von TypeOrm in JavaScript Daten aus Mongodb zur MySQL-Datenbank hinzufügen können.

Zuallererst müssen wir die Verbindung für MySql und MongoDb einrichten

Definieren Sie zunächst die Konfiguration mithilfe von DataSource, die mithilfe der angegebenen Anmeldeinformationen und Hostinformationen eine Verbindung zur MySQL-Datenbank herstellt. Außerdem werden Entitätsklassen der Datenbanktabelle zugeordnet, wodurch die ORM-Funktionalität aktiviert wird. Hier der Code dafür.

Ich werde ein einfaches College-Modell verwenden, an dem ich gearbeitet habe, damit Sie es besser verstehen.

Dateiname: 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
}); 
Nach dem Login kopieren
Nach dem Login kopieren

Stellen Sie nun mit den in sqlDataSource definierten Anmeldeinformationen und Konfigurationen eine Verbindung zur MySQL-Datenbank her. Hier ist der Code dafür

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

    }
}
Nach dem Login kopieren

Schreiben Sie Ihren Code immer in einem Try-Catch-Block mit den richtigen Protokollen, damit Sie Ihren Code schneller debuggen können, falls Sie Fehler machen.

Stellen Sie außerdem sicher, dass Sie über eine ordnungsgemäße Verbindung zur MongoDb-Datenbank verfügen, bevor Sie fortfahren.

Definieren Sie zunächst die Schemata für Ihre Tabelle in einem separaten Ordner, nennen Sie ihn „sqlmodels“ und erstellen Sie darin die Seiten für Ihre Modelle.
Wir müssen diese Datei in die Datei connect.js importieren, in der wir Code für die Verbindung geschrieben haben (erster Code)

Hier ist der Code für das College-Schema

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

        }
    }

})
Nach dem Login kopieren

Stellen Sie sicher, dass Sie Ihre mongoDb-Verbindung eingerichtet haben und auch die Schemas dafür definiert haben.

Jetzt müssen wir als Letztes und Wichtiges die Funktion schreiben, die die Daten von mongoDb abruft und sie zu SQL-Tabellen hinzufügt.

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
}); 
Nach dem Login kopieren
Nach dem Login kopieren

Hier habe ich die Daten in Chucks aufgenommen und sie dann in Tabellen eingefügt. Dies ist hilfreich, wenn Sie mit großen Datenmengen arbeiten, da das gleichzeitige Abrufen großer Datenmengen in mongoDb nicht möglich ist.

Da dies mein erster Blog ist, freue ich mich über Ihre Vorschläge und Ihr Feedback, um mich zu verbessern.
Vielen Dank fürs Lesen ?

Das obige ist der detaillierte Inhalt vonORM und Migrieren/Hinzufügen von Daten zur MySql-Datenbank von MongoDb mithilfe von TypeOrm in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage