无法保存腌制的 MongoEngine 文档
Can't save pickled MongoEngine document
我已经将一些 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
object 与正确的 collection 和数据库相关联。在上面的代码中,它输入了 if
所以 document.save()
被执行了。但是我的 collection...
中没有文件
这可能是因为您的文档在被 pickle 时已经处于 saved
状态,因此它们不会再次插入到 Db 中。您可以通过更改 document.save()
行强制在数据库中创建它们:
document.save(force_insert=True)
我已经将一些 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
object 与正确的 collection 和数据库相关联。在上面的代码中,它输入了 if
所以 document.save()
被执行了。但是我的 collection...
这可能是因为您的文档在被 pickle 时已经处于 saved
状态,因此它们不会再次插入到 Db 中。您可以通过更改 document.save()
行强制在数据库中创建它们:
document.save(force_insert=True)