什麼是 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中文網其他相關文章!