[英]Switching Collections and saving in Flask-Mongoengine
我无法将文档保存到新集合,然后从旧集合中删除它们。 我像这样创建一个新对象:
class Test(mongo.Document):
field = mongo.StringField()
t = Test(field="test")
t.switch_collection('default')
t.save()
t.switch_collection('switched')
t.save()
t.switch_collection('default')
t.delete()
似乎只执行第一次保存到默认集合,然后再执行任何操作。 我玩过很多不同的选项,例如在每次切换/保存后和从 mongoengine 上下文管理器重新加载对象:
with switch_collection(Test, 'mongoswitch') as test:
test(field="switch").save()
我的 mongo 设置看起来像(首先调用):
app.config["MONGODB_SETTINGS"] = {'db': 'TestDB'}
mongo = MongoEngine(app)
使用 mongoengine 0.10 和 pymongo 2.8.1 与 Python 3.4 。
有人有想法吗? 非常感谢。
我看到这是个老问题,但也许有人有同样的问题。我认为这是因为当您有一个设置了id
的文档时,通过调用t.save()
您只能更新集合中的现有文档。 要真正保存它,您需要调用t.save(force_insert=True)
你有任何错误吗? 它对我有用。 检查 mongo db 集合中的记录。
来自 mongoengine 文档的一个可能原因:
“在使用上下文管理器之前,请确保已使用 register_connection() 或 connect() 注册了所有别名。”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.