pymongo批量插入
通常我们可以用pymongo这个驱动来作为API操作mongodb,一个典型的需求就是批量插入大量的document(文档),我们知道mongodb是fire-and-forget的模型,即发送数据到mongdb-server后,客户端就认为数据已经保存,这种类似于非阻塞的方式,可以立刻返回。要保存的文档可以放在一个python的数据结构list中,那么如果这list过于庞大,那拍脑袋想想也不利于mongo-server插入内存,更何况内存碎片,网络IO等风险。所以批量操作吧,见下面的一段代码。
from pymongo import Connection loadsplitsize = 10000 #init a list list=['a','b','c'] con = Connection('192.168.1.1',12701) db = con['mydb'] db.authenticate('username', 'passw0rd') mycollection = db['mycollection'] # 分页的插入数据库 offset=0 while(offset < len(list)): mycollection.insert(list[offset:offset+loadsplitsize]) offset += loadsplitsize |
更多pymongo的API使用请参考 http://api.mongodb.org/python/2.2/tutorial.html