lia*_*ker 7 python mongoengine
我有一个巨大的MongoDB数据库,由mongoengine驱动,其中的对象有一个日期.为了使工作更轻松,我想存档旧对象,但将它们保存在某处.
我一直在阅读文档,并碰上了switch_db和switch_collection.但是,我不能做任何工作.
对于这两种情况,文档都引用了两种使用方案.
作为一项QuerySet行动:
user = User.objects.get(id=user_id)
user.switch_collection('old-users')
user.save()
Run Code Online (Sandbox Code Playgroud)
这个问题是它只适用于单个对象.无法批量存档多个文档.
作为context_manager:
with switch_collection(Group, 'group1') as Group:
Group(name="hello testdb!").save() # Saves in group1 collection
Run Code Online (Sandbox Code Playgroud)
使用此我甚至无法进行查询,收到以下错误:
ValidationError (Document:None) (Field is required...
Run Code Online (Sandbox Code Playgroud)我已经尝试使用mongoengine搜索存档数据的方法,但似乎没有一个选项可行.你有什么建议吗?
如果您有权访问 MongoDB 实例本身,为什么不直接对其运行查询,而不是跳过 MongoEngine 的循环呢?
您可以使用以下命令重命名当前users集合users-old:
http://docs.mongodb.org/manual/reference/command/renameCollection/
然后运行一个简单的脚本将新值复制到新users集合
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |