2017-04-12 41 views
1

我想以原子方式「重建」我的集合,這意味着刪除所有現有文檔並從頭開始填充它。 事情是,由於交易不受支持,集合是空的時間差距很小,這是我想要避免的。在pymongo中重建集合

有沒有辦法在原子事物中執行此類操作?所以收藏品是空的,沒有意義?

回答

1

您可以使用不同的名稱構建新集合,然後使用rename命令重命名新集合並刪除現有集合(使用dropTarget=True選項)。

有幾個注意事項,但:

  • 該命令將無效的那些中斷的查詢 正在返回數據打開的遊標。
  • renameCollection在操作期間阻止所有數據庫活動。
  • renameCollection與分片集合不兼容。
  • 如果renameCollection操作未完成,則目標集合和索引將無法使用並需要手動干預進行清理。

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

+0

謝謝你,幫了我很多。 –