当爬虫获取的数据量较大时,一条一条的写入MongoDB会过于消耗资源。
这时候就需要用到insert_many()
方法,把数据放入列表中并批量插入,但是如果你为了数据不被重复建立了MongoDB的唯一索引,就可能会导致部分数据无法写入。
因为insert_many()
默认是按序写入,一条数据写入失败,后面的数据就无法写入了。所以需要修改默认参数ordered
。
当ordered=False
时,数据就会被乱序并行插入,所以每个字典的插入操作互不影响。
代码如下:
coll = pymongo.MongoClient()['db']['coll']
items = [{'a':1},{'a':2},{'a':1}]
coll.insert_many(items,ordered=False)
网友评论