2010-10-31 66 views
3

我正在使用CouchDB,並且我有一種情況,其中有一堆用戶id上鍵入的文檔。我希望能夠發送一個查詢來更新所有這些文檔中的特定字段。例如,當有通知進入時,我希望通過傳遞適用通知的用戶列表和通知消息來更新每個用戶文檔。使用處理程序的沙發數據庫批量更新

回答

3

我想讀_changes(可能是apply a filter),然後執行所需的HTTP查詢。

請記住,在更新文檔之前,您需要獲取文檔。

+1

嗯,我看到這個例子http://stackoverflow.com/questions/2972068/couchdb-document-update-handlers-in-place-updates關於如何使用更新處理程序,它似乎應該是可以在服務器上設置一個腳本來完成這項工作,這將避免來回傳遞文檔。 – Yogthos 2010-11-01 14:51:07

8

不幸的是,CouchDB中的_update處理程序當前一次只支持一個文檔,因此無法在多個文檔上使用_update處理程序。爲此,您需要構建一個小型的「代理」服務器端腳本,該腳本可以接收請求,併爲每個文檔發送一個_update處理程序請求。這並不理想,但在有補丁允許構建批量更新處理程序之前,這是要走的路。

我已經要求_bulk_update處理程序(或類似的)被添加到未來版本的CouchDB中,因爲我也想要這個功能。 :) https://issues.apache.org/jira/browse/COUCHDB-1303