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 相关文章推荐
URL编码转换,escape() encodeURI() encodeURIComponent()
Dec 27 Javascript
浅析node.js中close事件
Nov 26 Javascript
关于javascript模块加载技术的一些思考
Nov 28 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
Mar 26 Javascript
jQuery实现的多屏图像图层切换效果实例
May 07 Javascript
JS实现3D图片旋转展示效果代码
Sep 22 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
Dec 17 Javascript
JavaScript实现数组降维详解
Jan 05 Javascript
史上最全JavaScript常用的简写技巧(推荐)
Aug 17 Javascript
利用JavaScript的%做隔行换色的实例
Nov 25 Javascript
vue 使用ref 让父组件调用子组件的方法
Feb 08 Javascript
vue脚手架搭建项目的兼容性配置详解
Jul 17 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 foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
PHP中PDO的错误处理
2011/09/04 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
php获取根域名方法汇总
2014/10/28 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
javascript如何创建对象
2016/08/29 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
小程序实现留言板
2018/11/02 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
python版飞机大战代码分享
2018/11/20 Python
对Django外键关系的描述
2019/07/26 Python
python 导入数据及作图的实现
2019/12/03 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
精美的手工家居和生活用品:Nkuku
2019/11/01 全球购物
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
个人简历自我评价范文
2014/02/04 职场文书
公司授权委托书范文
2014/09/21 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
在CSS中使用when/else的方法
2022/01/18 HTML / CSS