在Flask-Mongoengine中切换集合并保存

aus*_*nce 6 python mongoengine flask 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()
Run Code Online (Sandbox Code Playgroud)

似乎只执行第一次保存到默认集合,然后执行任何操作.我玩了很多差异选项,比如每次切换/保存后重新加载对象以及mongoengine上下文管理器:

with switch_collection(Test, 'mongoswitch') as test:
    test(field="switch").save()
Run Code Online (Sandbox Code Playgroud)

我的mongo设置看起来像(先叫):

 app.config["MONGODB_SETTINGS"] = {'db': 'TestDB'}
 mongo = MongoEngine(app)
Run Code Online (Sandbox Code Playgroud)

使用mongoengine 0.10和pymongo 2.8.1和Python 3.4.

有人有想法吗?非常感谢.

Raj*_*hik 0

您遇到任何错误吗?它对我有用。检查 mongo 数据库集合中的记录。

mongoengine文档中可能的原因之一:

“在使用上下文管理器之前,请确保已使用 register_connection() 或 connect() 注册了任何别名。”