2017-04-12 113 views
1

我想以原子方式“重建”我的集合,这意味着删除所有现有文档并从头开始填充它。 事情是,由于交易不受支持,集合是空的时间差距很小,这是我想要避免的。在pymongo中重建集合

有没有办法在原子事物中执行此类操作?所以收藏品是空的,没有意义?

回答

1

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

有几个注意事项,但:

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

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

+0

谢谢你,帮了我很多。 –