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)

Reply via email to