2010-10-31 71 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