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 相关文章推荐
JavaScript的parseInt 取整使用
May 09 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
Jul 28 Javascript
浅析jQuery Ajax通用js封装
Jun 22 Javascript
javascript 中null和undefined区分和比较
Apr 19 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
Mar 12 Javascript
Vue二次封装axios为插件使用详解
May 21 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
Jul 10 Javascript
浅谈Redux中间件的实践
Jul 27 Javascript
Vue动态创建注册component的实例代码
Jun 14 Javascript
js利用iframe实现选项卡效果
Aug 09 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
Nov 23 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
Nov 24 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计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
Php图像处理类代码分享
2012/01/19 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
2007/04/27 Javascript
jQuery 使用手册(四)
2009/09/23 Javascript
js中匿名函数的N种写法
2010/09/08 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
Angular 应用技巧总结
2016/09/14 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
Vue.js进阶知识点总结
2018/04/01 Javascript
小程序采集录音并上传到后台
2019/11/22 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python 爬虫之Beautiful Soup模块使用指南
2018/07/05 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
Python中关于浮点数的冷知识
2019/09/22 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
Python imread、newaxis用法详解
2019/11/04 Python
python二维键值数组生成转json的例子
2019/12/06 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
python名片管理系统开发
2020/06/18 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
Ray-Ban雷朋太阳眼镜英国官网:Ray-Ban UK
2019/11/23 全球购物
幼儿园门卫制度
2014/01/29 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
领导干部作风建设总结
2014/10/23 职场文书
新员工入职感想
2015/08/07 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python