无法保存腌制的MongoEngine文档

时间:2018-02-27 17:11:34

标签: python mongodb pickle mongoengine

我已将一些mongoengine文档转储到pickle文件中。当我在运行时加载它们并尝试将它们保存到Db时,不会引发错误,但不保存文档。

这是一个代码示例:

    with open("documents.list", "rb") as infile:
        documents = pickle.load(infile)
        for document in documents:
            if MyDocument.objects(id=document.id).first() is None:
                document.save()

我已经验证document对象与正确的集合和db相关联。在上面的代码中,它输入if,因此执行document.save()。但我的收藏中没有文件......

1 个答案:

答案 0 :(得分:0)

这可能是因为您的文件在被腌制时已经处于saved状态,因此它们不会再次插入Db中。您可以通过更改document.save()行:

强制在数据库中创建
document.save(force_insert=True)