2013-10-29 27 views
1

我有一個數據庫,需要定期刪除文檔。它將在每批100k文件的大球場中出現。在沙發上有效批量刪除文檔DB

從今天開始,通過首先向視圖發出請求,該視圖返回要移除的文檔的_id:s和_rev:s列表。

然後,我爲每個文檔對主機名/數據庫/ _id?= _ rev執行一個http DELETE請求。

對我來說,這似乎荒謬低效,因爲我必須爲每個100k文件做一個http請求。

是否有任何更有效的方式刪除沙發上的大量文件?我一直在尋找一個類似於POST的命令來創建新文檔,在那裏你發送http的主體中的數據。或者在mapreduce中做這件事的方法。但到目前爲止沒有運氣。

回答

3

您可以將所有刪除操作打包爲一個bulk_docs update

對於100k文檔,您會注意到該操作需要一點時間,但比單個DELETE更新快得多。

+0

我已準備好需要一些時間的操作。儘管如此,這比我所擁有的要好得多。我一定忘記了你可以從更新中設置_deleted標誌。 雖然有一個問題,當壓縮文件運行時會導致文件從db中被真正刪除,還是會使其不可見? –