node.js将MongoDB数据同步到MySQL的步骤


Posted in Javascript onDecember 10, 2017

前言

最近由于业务需要,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:https://3water.com/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 ('" + username + "','" + email + "','" + password + "');";
 pool.query(sql,(err, rows) => {
  if (err)
  res.send(err); 

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
Jquery 组合form元素为json格式,asp.net反序列化
Jul 09 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
Jun 20 Javascript
再谈querySelector和querySelectorAll的区别与联系
Apr 20 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
Jun 12 Javascript
JavaScript学习笔记之Function对象
Jan 22 Javascript
js实现图片和链接文字同步切换特效的方法
Feb 20 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
Mar 11 Javascript
js实现div模拟模态对话框展现URL内容
May 27 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
Jun 14 Javascript
jQuery中的100个技巧汇总
Dec 15 Javascript
详解用Node.js实现Restful风格webservice
Sep 29 Javascript
tracking.js页面人脸识别插件使用方法
Apr 16 Javascript
Node.js中sequelize时区的配置方法
Dec 10 #Javascript
node.js多个异步过程中判断执行是否完成的解决方案
Dec 10 #Javascript
关于react中组件通信的几种方式详解
Dec 10 #Javascript
vue项目中v-model父子组件通信的实现详解
Dec 10 #Javascript
Angular项目从新建、打包到nginx部署全过程记录
Dec 09 #Javascript
利用ES6实现单例模式及其应用详解
Dec 09 #Javascript
利用node.js如何创建子进程详解
Dec 09 #Javascript
You might like
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
PHP中防止SQL注入实现代码
2011/02/19 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
destoon找回管理员密码的方法
2014/06/21 PHP
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
2015/11/30 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
2016/03/28 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
angular4笔记系列之内置指令小结
2018/11/09 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
python隐藏终端执行cmd命令的方法
2019/06/24 Python
python Plotly绘图工具的简单使用
2020/03/03 Python
Python设计密码强度校验程序
2020/07/30 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
如果有两个类A,B,怎么样才能使A在发生一个事件的时候通知B
2016/03/12 面试题
初任培训自我鉴定
2013/10/07 职场文书
银行领导证婚词
2014/01/11 职场文书
英文导游欢迎词
2014/01/11 职场文书
会计求职自荐信范文
2015/03/04 职场文书
2016春节家属慰问信
2015/03/25 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书
学困生转化工作总结
2015/08/13 职场文书
如何写好闭幕词
2019/04/02 职场文书
PyTorch dropout设置训练和测试模式的实现
2021/05/27 Python
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS