2016-06-11 72 views
1

我是Python和CouchDB的新手,我正在嘗試編寫一個自動交易腳本。因此,我只關心給定數據庫/表格中的最近400個文檔(交易數據)。爲了填補一些空白:如何在Python中爲CouchDB創建自動刪除功能

  1. 我有一個正在讀外匯交易數據和寫入彙總統計到的CouchDB數據庫中的一個Python程序。這件事每20秒運行一次,效果很好。在這一點上,我只是創建了一些大表(我不需要)。

  2. 我有另一個Python程序將讀取該表中的前400條記錄。在這個程序的最後,我想做一些自動清除,它會刪除比前400個文檔更早的東西。

我在這方面有一定的靈活性,因爲這只是一個學習一些新編程技術的寵物項目。我假設這可以通過使用_id = epoch time + views來解決,但我只想要簡單的東西。

有什麼建議嗎?

回答

0

由於與其他要清除的文檔相比,文檔的數量非常少,因此我會嘗試對新數據庫進行選擇性複製,並將其複製到_replicate並在doc_ids數組中添加400個相關ID 。 (http://docs.couchdb.org/en/1.6.1/api/server/common.html#post--_replicate

然後只是交換到新的數據庫,並刪除舊的。這將是非常快速和非常錯誤的證明,因爲couchdb只需要刪除舊的數據庫和索引文件,而不是查找和刪除成千上萬的舊文檔。