【发布时间】:2023-04-10 12:27:02
【问题描述】:
我有一个由 mongoengine 提供支持的巨大 MongoDB 数据库,其中的对象有一个日期。为了使工作更轻松,我想归档旧对象,但将它们保存在某个地方。
我一直在阅读文档并遇到了switch_db 和switch_collection。但是,我不能让任何一个工作。
对于这两种情况,文档都引用了两种使用场景。
-
作为
QuerySet操作:user = User.objects.get(id=user_id) user.switch_collection('old-users') user.save()问题在于它仅适用于单个对象。无法批量归档多个文档。
-
作为
context_manager:with switch_collection(Group, 'group1') as Group: Group(name="hello testdb!").save() # Saves in group1 collection使用这个我什至无法进行查询,得到以下错误:
ValidationError (Document:None) (Field is required...
我已尝试寻找一种使用 mongoengine 存档数据的方法,但似乎没有一个选项有效。你有什么建议吗?
【问题讨论】:
-
尝试将:
from models import Doc放入您的存档脚本中 -
谢谢,在修复了这个错误后我得到了一个新的,我想我需要连接到一个新的数据库,但在文档中没有找到任何相关信息。
-
你试过测试connect('doc-archive')这行是否成功到达mongodb?
-
@VictorH.Panisa 我该如何测试?
-
@liarspocker 参见 API 文档,docs.mongoengine.org/apireference.html#api-reference 你可能没有注册连接别名,详情参见 mongoengine.register_connection
标签: python mongoengine