批量寫:
1 from pymongo import MongoClient 2 from pymongo import InsertOne 3 import time 4 5 def insert(): 6 #連接數據庫 7 conn = MongoClient("XXX.XXX.XXX.XXX:XXXX",maxPoolSize=None) 8 my_db = conn['test'] 9 my_collection = my_db['test_1'] 10 11 # 批量寫 12 i = 0 13 t0 = time.time() 14 data =[] 15 while True: 16 #'_id'為主鍵,循環時遞增,全部添加到data列表內 17 data.append(InsertOne({"_id":i,"insert_time": int(time.time() * 1000)})) 18 i+=1 19 #判斷列表長度,達到10000執行插入,后繼續循環 20 if len(data) == 10000: 21 my_collection.bulk_write(data) 22 res = [] 23 i += 1 24 continue 25 #判斷i等於1億時停止循環 26 elif i == 100000000: 27 break 28 29 if __name__ == '__main__': 30 insert()
逐條寫:
1 def test_insert(): 2 conn = MongoClient("xxx.xxx.xxx.xxx:xxxx",maxPoolSize=None) 3 my_db = conn['test'] 5 # 逐條寫 6 t0 = time.time() 7 for i in range(0,10000000): 8 my_db['test_1'].insert_one({"_id":i, "insert_time": int(time.time() * 1000)}) 9 print (time.time() - t0)