批量写:
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)