Geoffrey Cox created COUCHDB-2278:
-------------------------------------
Summary: Partial updates via _bulk_docs
Key: COUCHDB-2278
URL: https://issues.apache.org/jira/browse/COUCHDB-2278
Project: CouchDB
Issue Type: Wish
Security Level: public (Regular issues)
Reporter: Geoffrey Cox
I'm trying to create a collaborative app that allows two users to edit
different attributes in the same document simultaneously. For example, client 1
can edit the task name, while client 2 can edit the priority. If I attempt to
then sync the clients with the database via _bulk_docs, the "later" client
overwrites the "earlier" client.
An alternative to using _bulk_docs is to use update handlers
(http://wiki.apache.org/couchdb/Document_Update_Handlers), but this requires an
API call for each update, which is a lot less efficient than using _bulk_docs.
Another alternative is to first get the full document from couch before issuing
a call to _bulk_docs, but this again requires an additional call to "get" the
document.
Let's say our documents look like:
{code}
[{id: 1111, name: 'take out trash', priority: 'high'},
{id: 2222, name: 'clean dishes', priority: 'medium'}]
{code}
It would be great if our two example _bulk_docs calls from client 1&2 could be
like:
client1:
{code}
_bulk_docs: [{id: 1111, name: 'take out trash and recycling'},
{id: 2222, priority: 'high'}]
{code}
client2:
{code}
_bulk_docs: [{id: 1111, priority: 'medium'},
{id: 2222, name: 'clean & dry dishes'}]
{code}
which would result in the following in couch:
{code}
[{id: 1111, name: 'take out trash and recycling', priority: 'medium'},
{id: 2222, name: 'clean & dry dishes', priority: 'high'}]
{code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)