[
https://issues.apache.org/jira/browse/COUCHDB-1303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13843130#comment-13843130
]
Benjamin Young commented on COUCHDB-1303:
-----------------------------------------
It would seem that allowing `_update` to store multiple documents would be the
easier approach.
This is the current code for saving documents and responding to an `_update`
request:
https://github.com/apache/couchdb/blob/master/src/couch_mrview/src/couch_mrview_show.erl#L131
Perhaps making the first element of the return array support multiple JSON
objects (i.e. return [[doc1, doc2], {..headers..}]; ) would be a good first
step.
The next step would be to allow `_update` (with no doc_id specified in the URL
support the bulk_docs JSON format for POSTs).
Likely this could be broken into two separate commits (and Jira tickets) as
they have separate value:
1. sending in a single `_update` request and having multiple documents changed
2. sending in a bulk_docs formatted `_update` POST and having those documents
handled and/or other documents generated/updated.
I don't think (now) that a `_bulk_update` endpoint would be needed.
Additionally, the use of redirect responses from an `_update` handler might
work now has a work around, it's not something I'd care to depend on (nor see
shipped in CouchDB) due to there being no guarantee that the Location header
would actually be followed by the client, and therefore no guarantee that the
second (or more) updates would actually be done. It could certainly work if you
control the whole stack and are OK with the potential of the redirects failing
at times.
Thanks for drawing attention to this issue in any case!
> Add a _bulk_update handler similar to _update but for bulk document changes
> ---------------------------------------------------------------------------
>
> Key: COUCHDB-1303
> URL: https://issues.apache.org/jira/browse/COUCHDB-1303
> Project: CouchDB
> Issue Type: New Feature
> Reporter: Benjamin Young
> Labels: api, update_request_handler
>
> _update handlers are great (and getting better!) for building RESTful API's
> inside CouchDB. One limitation I found tonight is that _update can only do a
> single document at a time. If the API I'm building needs to update multiple
> docs (in a similar fashion to _bulk_docs), then an outside "proxy" script is
> required. It would be ideal to have a _bulk_update handler to allow for the
> same functionality as _update, but with the ability to insert multiple
> documents at once.
> Perhaps the current _update handler API could be extended to support multiple
> IDs/documents, but a separate API endpoint would be seem reasonable if needed.
> Thanks for considering this idea.
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)