首頁  >  文章  >  web前端  >  在node.js中如何將MongoDB資料同步到MySQL中去

在node.js中如何將MongoDB資料同步到MySQL中去

亚连
亚连原創
2018-06-21 17:07:021080瀏覽

這篇文章主要給大家介紹了關於node.js將MongoDB資料同步到MySQL的相關資料,文中透過範例程式碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧。

前言

最近由於業務需要,APP端後台需要將MongoDB中的資料同步到Java端後台的MySQL中,然後又將MySQL中算好的數據,同步到MongoDB資料庫。

這個過程看是很繁瑣,其實這就是一個互相寫表的過程。

接下來就來看看node.js將MongoDB中的資料批次插入到MySQL資料庫的實作過程。話不多說了,來一起看看詳細的介紹吧。

環境

  • #node.js

  • MongoDB

  • MySQL

  • npm

#需要的模組

  • mongoose

  • MySQL

準備好MongoDB中的數據

  • 比方說:我這裡要同步的是使用者表,使用者表包含username,email,password...

  • 透過MongoDB shell指令插入1000條資料

#實現

##mongoose的Schema我這裡就不寫了,大家可以上網查看,node.js連接MongoDB和MySQL的pool看下面:

node.js連接MongoDB://www.jb51.net/article/98813 .htm

Nodejs mysql pool使用實例:

mysql模組為felixge/node-mysql

源碼如下:

/**
* Created by kevalin on 2015/4/22.
*/
var express = require('express');
var router = express.Router();
var mysql = require('mysql');
var conf = require('../config/dbconnection');
//定义pool池
var pool = mysql.createPool(
{
host : conf.dbMysql.host,
user : conf.dbMysql.user,
password : conf.dbMysql.password,
database : conf.dbMysql.database,
port : conf.dbMysql.port
}
);
router.get('/', function(req, res) {
var selectSites = "select *, date_format(do_time, '%Y-%m-%d %H:%i:%s') as time from siteinfo order by id";
pool.getConnection(function(err, connection) {
if (err) throw err;
connection.query(selectSites, function(err, rows) {
if (err) throw err;
res.render('sites', {title : '站点分布', results : rows});
//回收pool
connection.release();
});
});
});
module.exports = router;

下面上關鍵程式碼  

想法:

先從MongoDB查詢資料然後透過遍歷插入MySQL中。

User.find({}, (err, user) => {
 if (err)
 res.send(err);
 for( let i = 0 ; i < family.length ; i ++ ) { 
 console.log("第" + (i + 1) + "条数据");
 let username = user[i].username; 
 let email = user[i].email;
 let password = user[i].password; 
 let sql = "insert into user_table(username, email, password) values (&#39;" + username + "&#39;,&#39;" + email + "&#39;,&#39;" + password + "&#39;);";
 pool.query(sql,(err, rows) => {
  if (err)
  res.send(err); 

  res.json({
  message:&#39;数据插入成功&#39;,
  rows
  });  
 });
 }
});

上面是我整理給大家的,希望未來會對大家有幫助。

相關文章:

在Angular2中如何實現斷點調試ts檔案

在vue-router中如何實現路由懶加載

使用JS canvas如何製作圓錐體

#有關JS排序演算法總結

以上是在node.js中如何將MongoDB資料同步到MySQL中去的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn