Rumah >hujung hadapan web >tutorial js >ORM dan Migrasi/Menambah Data ke Pangkalan Data MySql dari MongoDb menggunakan TypeOrm dalam javaScript

ORM dan Migrasi/Menambah Data ke Pangkalan Data MySql dari MongoDb menggunakan TypeOrm dalam javaScript

Linda Hamilton
Linda Hamiltonasal
2024-12-23 17:20:18853semak imbas

Apakah itu ORM ?
Pemetaan Hubungan Objek atau ringkasnya ORM ialah perpustakaan atau alat yang membantu kami berinteraksi dengan pangkalan data tanpa menulis pertanyaan pangkalan data mentah.

Daripada menguruskan jadual dan baris pangkalan data secara langsung, kami bekerja dengan beberapa objek dalam kod kami dan ORM menterjemah objek ini ke dalam pertanyaan pangkalan data dan apabila data diambil semula daripada pangkalan data, ORM memetakan data kembali menjadi objek.

ORM mewujudkan jambatan antara program berorientasikan objek dan pangkalan data hubungan.

Kes Penggunaan:
Jika kami mencipta aplikasi javaScript/TypeScript dan apabila kami memerlukan pangkalan data untuk perkhidmatan backend maka kami boleh menggunakan ORM untuk menyambungkan aplikasi kami ke pangkalan data.

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

beberapa ORM yang digunakan dalam bahasa yang berbeza ialah:

  1. JavaScript/TypeScript : TypeOrm, Sequelize
  2. Python : Django ORM, SQLAlchemy
  3. Jawa : Hibernate

Mengapa kami perlu menggunakan ORM dalam aplikasi kami?

  1. Meningkatkan keselamatan, alat ORM dibina untuk menghapuskan kemungkinan serangan suntikan SQL
  2. anda akan menulis kurang kod apabila menggunakan alat ORM berbanding dengan sql.
  3. Dengan TypeORM, beralih daripada satu pangkalan data ke pangkalan data yang lain (cth., MySQL kepada PostgreSQL) adalah mudah dan memerlukan perubahan yang minimum, menjadikannya sangat mudah disesuaikan untuk projek dengan keperluan pangkalan data yang berkembang.

Sekarang mari fahami cara kita boleh menambah data daripada mongodb ke pangkalan data Mysql menggunakan TypeOrm dalam javaScript.

Perkara pertama dan terpenting yang perlu kita lakukan ialah menetapkan sambungan untuk MySql dan MongoDb

Mula-mula tentukan konfigurasi menggunakan DataSource yang akan menyambung ke pangkalan data MySql menggunakan bukti kelayakan dan maklumat hos yang ditentukan. Ia juga memetakan kelas entiti ke jadual pangkalan data sekali gus membolehkan kefungsian orm. Ini kodnya.

Saya akan mengambil model kolej mudah yang saya kerjakan untuk membuat anda memahaminya dengan lebih baik.

Nama fail : 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
}); 

Sekarang sambung ke pangkalan data MySQL menggunakan kelayakan dan konfigurasi yang ditakrifkan dalam sqlDataSource. Berikut ialah kod untuknya

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

    }
}

sentiasa tulis kod anda dalam blok try catch dengan log yang betul, yang akan membantu anda menyahpepijat kod anda dengan lebih cepat, sekiranya anda melakukan kesilapan.

Juga pastikan anda mempunyai sambungan yang betul untuk pangkalan data mongoDb sebelum meneruskan lebih jauh.

Tentukan dahulu skema untuk jadual anda dalam folder Asingkan, izinkan saya namakannya sebagai sqlmodels dan di dalamnya buat halaman untuk model anda.
Kami perlu mengimport fail ini dalam fail connect.js di mana kami menulis kod untuk sambungan (kod pertama)

Berikut ialah sekeping kod untuk skema kolej

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

        }
    }

})

Pastikan anda mempunyai set sambungan mongoDb anda dan anda juga mempunyai Skema yang ditentukan untuknya.

Kini perkara terakhir dan penting yang perlu kita lakukan ialah menulis fungsi yang akan mengambil data daripada mongoDb dan menambahkannya pada jadual 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
}); 

Di sini saya mengambil data dalam chuck dan kemudian memasukkannya ke dalam jadual, ini akan membantu jika anda berurusan dengan jumlah data yang besar kerana mengambil sejumlah besar data pada satu masa tidak boleh dilakukan dalam mongoDb.

Memandangkan ini blog pertama saya, saya mengalu-alukan cadangan dan maklum balas anda untuk memperbaiki diri saya.
Terima kasih kerana membaca ?

Atas ialah kandungan terperinci ORM dan Migrasi/Menambah Data ke Pangkalan Data MySql dari MongoDb menggunakan TypeOrm dalam javaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn