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 相关文章推荐
根据分辨率不同,调用不同的css文件
Jul 07 Javascript
jQuery 1.0.4 - New Wave Javascript(js源文件)
Jan 15 Javascript
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
Jun 02 Javascript
对xmlHttp对象方法和属性的理解
Jan 17 Javascript
Ajax异步提交表单数据的说明及方法实例
Jun 22 Javascript
js的alert弹出框出现乱码解决方案
Sep 02 Javascript
jQuery学习笔记之jQuery动画效果
Sep 09 Javascript
javascript中的3种继承实现方法
Jan 27 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
Feb 14 Javascript
javascript 开发之百度地图使用到的js函数整理
May 19 Javascript
webpack4打包vue前端多页面项目
Sep 17 Javascript
详解Nuxt.js中使用Element-UI填坑
Sep 06 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
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
用PHP和ACCESS写聊天室(十)
2006/10/09 PHP
php自动获取目录下的模板的代码
2010/08/08 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
Python随机生成数模块random使用实例
2015/04/13 Python
windows上安装Anaconda和python的教程详解
2017/03/28 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
幼儿园小班评语大全
2014/04/17 职场文书
甲午大海战观后感
2015/06/02 职场文书
《植树问题》教学反思
2016/03/03 职场文书
导游词之清晏园
2019/11/22 职场文书
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python
Django框架中模型的用法
2022/06/10 Python