Python 如何在mongodb中一次创建100000个条目?

Python 如何在mongodb中一次创建100000个条目?,python,mongodb,python-2.7,pymongo,mongoengine,Python,Mongodb,Python 2.7,Pymongo,Mongoengine,当一次创建100000(即十万)个实体时,它崩溃了。我的数据库是这样的: EmbDoc(EmbeddedDocument): id = StringField(required=True, primary_key=True) field_one = StringField() ... MyDoc(Document): emb_doc_list = EmbeddedDcoumentListField(EmbDoc) total_emb_doc = IntF

当一次创建100000(即十万)个实体时,它崩溃了。我的数据库是这样的:

EmbDoc(EmbeddedDocument):
    id = StringField(required=True, primary_key=True)
    field_one = StringField()
    ...

MyDoc(Document):
    emb_doc_list = EmbeddedDcoumentListField(EmbDoc)
    total_emb_doc = IntField()
    ...
现在,我希望每个MyDoc最多有100个EmbDoc,如果达到100,我将创建另一个MyDoc(我的实际数据显示在EmbDoc中)。 为了做到这一点,我查询MyDocs,找到现有的MyDoc,它的entires少于100,并添加一个条目

如果我尝试创建1000个entires(但在本地机器上大约需要40秒),这个逻辑就可以正常工作。但当我试图一次添加大数据时,它失败得很惨


任何关于如何解决这个问题的想法都会有帮助。

问题在于数据库查询和序列化。由于我们每次都查询所有MyDoc,因此性能受到影响。
我们开始维护
MyDoc id
total\u emb\u doc
的哈希映射。现在,我们只需进行一次查找,即可获得文档。

目前,每10000个条目(序列化)需要10秒。

您的pymongo版本是什么?我在一次保存太多文档时发生了内存泄漏,升级pymongo解决了这一问题,也许这与pymongo 3.0.3有关。我正在尝试为每个MyDoc索引total_emb_doc,它会降低文档搜索的数量。如果有帮助,将进行更新。