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 相关文章推荐
用roll.js实现的图片自动滚动+鼠标触动的特效
Mar 18 Javascript
两个select之间option的互相添加操作(jquery实现)
Nov 12 Javascript
json格式化/压缩工具 Chrome插件扩展版
May 25 Javascript
简单常用的幻灯片播放实现代码
Sep 25 Javascript
JavaScript实现删除,移动和复制文件的方法
Aug 05 Javascript
基于JQuery实现分隔条的功能
Jun 17 Javascript
jsTree使用记录实例
Dec 01 Javascript
ES6新特性五:Set与Map的数据结构实例分析
Apr 21 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
Jun 25 Javascript
Vue自定义指令使用方法详解
Aug 21 Javascript
详解微信小程序-canvas绘制文字实现自动换行
Apr 26 Javascript
javascript+Canvas实现画板功能
Jun 23 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 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
php实现多张图片上传加水印技巧
2013/04/18 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
网页中返回顶部代码(多种方法)另附注释说明
2013/04/24 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
js将滚动条滚动到指定位置的简单实现方法
2016/06/25 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
python自带的http模块详解
2016/11/06 Python
Django在win10下的安装并创建工程
2017/11/20 Python
python实现ID3决策树算法
2017/12/20 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
DNA测试:Orig3n
2019/03/01 全球购物
外贸业务员求职信范文
2013/12/12 职场文书
师德学习感言
2014/01/31 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
健康教育主题班会
2015/08/14 职场文书
传单、海报早OUT了,另类传单营销方案送给你!
2019/07/15 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript