mongodb 数据传输到mysql数据库
1、首先安装MongoDB数据库,测试连接。(https://blog.youkuaiyun.com/weixin_38568503/article/details/127885059)
启动方式我用的是:bin/mongod --port=20255 --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongodb.log --bind_ip=0.0.0.0 --fork
2、连接之后登录。
mongo mongodb://prod-mongodb-1.mongo:10255/mongodb -u prod-mongodb-1 -p --ssl --sslAllowInvalidCertificates #举例daas 数据库连接命令,要输入密码
常用命令
show dbs;
use daasmongodb;
show collections;
db.wlw_card_open_door_log.find().pretty() #查看表结构
db.wlw_card_open_door_log.count({open_result:1}) #使用count函数查询字段
3、使用shell脚本执行传输操作,
#!/bin/bash
#MongoDB连接信息
mongo_host="******"
mongo_port="***"
mongo_user="mongodb-1"
mongo_pwd="****************"
mongo_db="daasmongodb"
#MySQL连接信息
mysql_host="dev-mysql"
mysql_user="dev-mysql"
mysql_pwd="****************"
mysql_db="test"
#执行MongoDB查询
face_count=$(mongo ${mongo_host}:${mongo_port}/${mongo_db} -u ${mongo_user} -p ${mongo_pwd} --ssl --sslAllowInvalidCertificates --quiet --eval "db.wlw_face_open_door_log.count({open_result: 1})")
qrcode_count=$(mongo ${mongo_host}:${mongo_port}/${mongo_db} -u ${mongo_user} -p ${mongo_pwd} --ssl --sslAllowInvalidCertificates --quiet --eval "db.wlw_qrcode_open_door_log.count({open_result: 1})")
remote_count=$(mongo ${mongo_host}:${mongo_port}/${mongo_db} -u ${mongo_user} -p ${mongo_pwd} --ssl --sslAllowInvalidCertificates --quiet --eval "db.wlw_remote_open_door_log.count({open_result:1})")
call_count=$(mongo ${mongo_host}:${mongo_port}/${mongo_db} -u ${mongo_user} -p ${mongo_pwd} --ssl --sslAllowInvalidCertificates --quiet --eval "db.wlw_call_open_door_log.count({call_object:1})")
#将查询结果写入MySQL数据库
mysql -u ${mysql_user} -p${mysql_pwd} -h ${mysql_host} ${mysql_db} <<EOF
UPDATE result_table SET value = ${face_count} WHERE name = 'face_count';
UPDATE result_table SET value = ${qrcode_count} WHERE name = 'qrcode_count';
UPDATE result_table SET value = ${remote_count} WHERE name = 'remote_count';
UPDATE result_table SET value = ${call_count} WHERE name = 'call_count';
EOF
4、记得第一次创建的时候要先实行insert 语句,再执行update语句
INSERT INTO result_table (name, value) VALUES ('face_count',${face_count});
INSERT INTO result_table (name, value) VALUES ('qrcode_count',${qrcode_count});
INSERT INTO result_table (name, value) VALUES ('remote_count',${remote_count});
INSERT INTO result_table (name, value) VALUES ('call_count',${call_count});
5、设置定时任务,