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 相关文章推荐
Js动态创建div
Sep 25 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
Nov 08 Javascript
js检验密码强度(低中高)附图
Jun 05 Javascript
javascript实现用户点击数量统计
Dec 25 Javascript
JS库之Particles.js中文开发手册及参数详解
Sep 13 Javascript
基于vue配置axios的方法步骤
Nov 09 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
Jan 04 Javascript
layer弹出层父子页面事件相互调用方法
Aug 17 Javascript
详解JavaScript作用域和作用域链
Mar 19 Javascript
js实现微信聊天界面
Aug 09 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
Aug 28 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
Nov 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
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
jquery.cookie.js使用指南
2015/01/05 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
jQuery实现监控页面所有ajax请求的方法
2015/12/10 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
EasyUI中在表单提交之前进行验证
2016/07/19 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
[04:09]2018年度DOTA2社区贡献奖-完美盛典
2018/12/16 DOTA
Python性能优化技巧
2015/03/09 Python
Python中按键来获取指定的值
2019/03/02 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
护理专科毕业生自荐书范文
2014/02/19 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
社会实践活动总结范文
2014/07/03 职场文书
市场策划求职信
2014/08/07 职场文书
校长创先争优承诺书
2014/08/30 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
领导干部作风建设总结
2014/10/23 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
感动中国何玥观后感
2015/06/02 职场文书
庭外和解协议书
2016/03/23 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL