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 相关文章推荐
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
Mar 14 Javascript
javascript中callee与caller的用法和应用场景
Dec 08 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
Nov 01 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
Nov 26 Javascript
jQuery实现行文字链接提示效果的方法
Mar 10 Javascript
喜大普奔!jQuery发布 3.0 最终版
Jun 12 Javascript
Javascript缓存API
Jun 14 Javascript
javascript cookie基础应用之记录用户名的方法
Sep 20 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
Apr 11 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
May 12 Javascript
关于vue-cli3打包代码后白屏的解决方案
Sep 02 Javascript
JS实现简单贪吃蛇小游戏
Oct 28 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获取http请求的头信息实现步骤
2012/12/16 PHP
php调用KyotoTycoon简单实例
2015/04/02 PHP
ThinkPHP使用Smarty第三方插件方法小结
2016/03/19 PHP
php 微信开发获取用户信息如何实现
2016/12/13 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
2016/07/19 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
2016/08/08 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
centos下更新Python版本的步骤
2013/02/12 Python
python常见数制转换实例分析
2015/05/09 Python
python字典基本操作实例分析
2015/07/11 Python
pandas计数 value_counts()的使用
2019/06/24 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
精美的手工家居和生活用品:Nkuku
2019/11/01 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
单位工程竣工验收方案
2014/03/16 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
春风化雨观后感
2015/06/11 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
Python打包为exe详细教程
2021/05/18 Python
教你使用pyinstaller打包Python教程
2021/05/27 Python
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL