一、數據準備
MySQL 5.7
--創建數據庫
CREATE DATABASE test01;
-- 建表語句
CREATE TABLE `saleorder` (
`order_id` int(11) NOT NULL,
`order_time` date DEFAULT NULL,
`order_num` int(11) DEFAULT NULL,
PRIMARY KEY (`order_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
-- 數據加載
INSERT INTO `saleorder`(`order_id`, `order_time`, `order_num`) VALUES (1, '2020-04-20', 420);
INSERT INTO `saleorder`(`order_id`, `order_time`, `order_num`) VALUES (2, '2020-04-04', 800);
INSERT INTO `saleorder`(`order_id`, `order_time`, `order_num`) VALUES (3, '2020-03-28', 500);
INSERT INTO `saleorder`(`order_id`, `order_time`, `order_num`) VALUES (4, '2020-03-13', 100);
INSERT INTO `saleorder`(`order_id`, `order_time`, `order_num`) VALUES (5, '2020-02-27', 300);
INSERT INTO `saleorder`(`order_id`, `order_time`, `order_num`) VALUES (6, '2020-01-07', 450);
INSERT INTO `saleorder`(`order_id`, `order_time`, `order_num`) VALUES (7, '2019-04-07', 800);
INSERT INTO `saleorder`(`order_id`, `order_time`, `order_num`) VALUES (8, '2019-03-15', 1200);
INSERT INTO `saleorder`(`order_id`, `order_time`, `order_num`) VALUES (9, '2019-02-17', 200);
INSERT INTO `saleorder`(`order_id`, `order_time`, `order_num`) VALUES (10, '2019-02-07', 600);
INSERT INTO `saleorder`(`order_id`, `order_time`, `order_num`) VALUES (11, '2019-01-13', 300);
如圖所示:
二、安裝三方庫
pip install pymysql
pip install pymongo
三、python代碼實現
import pymysql
import pymongo
# 創建mysql的數據庫連接
con = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='123456',
db='test01')
# 獲取遊標
cur = con.cursor(cursor=pymysql.cursors.DictCursor)
# 查詢mysql中表數據
try:
cur.execute('select * from saleorder')
# 創建mongodb數據庫連接
client = pymongo.MongoClient(host='localhost', port=27017)
# 獲取數據庫
# 兩種方式 或db=client.test01,相當於數據庫中的use test01;
db = client['test01']
for row in cur.fetchall():
# 時間字段轉換
#mongodb沒有datetime類型,因此必須先轉爲字符串才能導入mongodb
#若沒有時間字段可以省略此步
row['order_time'] = str(row['order_time'])
db.saleorder.insert_one(row)
except Exception as e:
print(e)
finally:
con.close()
client.close()
四、MongoDB中查看數據
use test01;
db.test01.find()