在pymongo重建收藏

时间:2017-04-12 16:23:48

标签: mongodb pymongo

我想"重建"我的原型收集,这意味着删除所有现有文档并从头开始填充。 问题是,由于不支持事务,因此集合为空的时间间隔很小,这是我想要避免的。

有没有办法在原子问题上执行此类操作?那么集合是空的没有意义吗?

1 个答案:

答案 0 :(得分:1)

您可以使用其他名称构建新集合,然后使用rename命令重命名新集合并删除现有集合(使用dropTarget=True选项)。

但有几点需要注意:

  • 该命令将使打开的游标无效,这会中断查询 目前正在返回数据。
  • renameCollection在操作期间阻止所有数据库活动。
  • renameCollection与分片集合不兼容。
  • 如果renameCollection操作未完成,目标集合和索引将无法使用,需要手动干预才能清理。

您可以在official docs找到更多信息。