python3將mongodb數據遷移至mysql

新鮮的,IP隱匿,直接貼出代碼:


# -*- coding: utf-8 -*-
"""
Created on Tue Aug 14 14:00:55 2018

@author: admin
"""
from pymongo import MongoClient
import pymysql

#--------------------------mysql數據庫操作------------------------------
config = {
    'host': 'localhost',
    'port': 3306,
    'user': 'dataserver',
    'passwd': 'dataserver123',
    'db':'dataserver',
    'charset':'utf8mb4',
    'cursorclass':pymysql.cursors.DictCursor
    }

#創建連接
conn = pymysql.connect(**config)
# 執行sql語句

def main_mysql():
    try:
        with conn.cursor() as cursor:
            sql='select * from tb_cmp_card limit 100'
            cursor.execute(sql)
            result=cursor.fetchall() 
#            print(result)
            return result
    finally:
        conn.close();
#--------------------mongodb數據庫信息-----------------------------        
settings = {
    "ip":'localhost',   #ip
    "port":27017,           #端口
    "db_name" : "myDB",    #數據庫名字
    "set_name" : "myDB"   #集合名字
}
if __name__ == "__main__":
    mongo = MongoClient('localhost',27017)
    db=mongo[settings["db_name"]]    
    mySet=db[settings["set_name"]]
    myConn_list = main_mysql()
    if  mySet.find().count!=0:
        mySet.remove()
        for item in myConn_list:
            mySet.insert(item);
    else:
        for item in myConn_list:
            mySet.insert(item);

上個結果,並打個促進和諧的碼:
數據庫數限制讀出100條,查看mongodb數據也是沒問題。


小片段:初寫的時候數據庫讀出與mongodb數據庫數據不一致,猜測是因爲沒有加條件導致追加插入。加了最後一段循環後沒有問題了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章