在使用MongoDB插入大量的数据的时候,我们可能会遇到这样的报错:
E11000 duplicate key error collection
这主要的原因是因为在插入数据的时候,可能会在同一时间插入两条数据(数据库的id是根据 时间戳+主机+进程号+序列生成的),所以可能会生成两条一样的_id。而在MongoDB里面_id是惟一的,所以会报错。
解决方法
只要是在插入的字段中有_id="",MongoDB就不会帮我们生成,那么就解决了这个问题。那么怎么生成一惟一的_id呢,我们可以使用uuid来生成
import uuid
_id = uuid.uuid3(uuid.NAMESPACE_DNS, "标志性的字段(例如名字等)"+datetime.datetime.now().strftime('%Y-%m-%d')
再次插入 问题解决