couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Neville Franks <s...@surfulater.com>
Subject Re: Bulk Updates in CouchDB
Date Tue, 16 Nov 2010 09:44:49 GMT
Thanks for the prompt response. I have to say that I am very, very
surprised that what seems to me are such basic operations aren't
available natively within CouchDB.

This is probably a deal breaker for my use and I would have thought
many others. My concern is iterating over a large number of documents
on a remote server just to do simple updates. It means I need to do
several HTTP requests (GET/PUT/DELETE) for each document in a set of
of possibly thousands or tens of thousands. I'm in Australia and the
server is in the US and I would imagine this making an application
unusable.

I am getting the feeling that CouchDB is great for storing lots of
information and getting it back in lots of interesting ways but not a
good fit for typical CRUD stuff that's done in SQL all the time.
Please correct me if I'm wrong.


Tuesday, November 16, 2010, 2:06:18 PM, you wrote:

k> You can't do this at the moment. At least, not that I know of.

k> For #1, my current trick is to generate a view with a map function
k> that looks like this:

k> map: function(doc) {
k>     emit(null, doc._rev);
k> }

k> This makes it easy to convert the results of the view (without
k> stale=ok) into a bulk-delete by iterating over the view, but not
k> fetching each document to get at the revision. This does mean that the
k> documents haven't been updated between the view-fetch and the
k> bulk-delete. But for my use-case, this works.

k> For #2, you have to iterate over from the client side. Unless, someone
k> else has another idea.

k> K.
k> ---
k> http://www.pcapr.net
k> http://twitter.com/pcapr
k> http://labs.mudynamics.com

k> On Mon, Nov 15, 2010 at 7:01 PM, Neville Franks <subs@surfulater.com> wrote:
>> Hi,
>> I am just learning about CouchDB so please excuse this nooby question.
>>
>> I've read lots the past few days including
>> http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API and a fair bit
>> of two of the online CouchDB books.
>>
>> My question is how do I do some simple things like:
>>
>> 1) Delete all documents where key.value = xxx
>>
>> 2) Update all documents where key.value = xxx so value = yyy
>>
>> I want the DB to do these, not for me to have to iterate through the
>> DB in code. From what I've read about Views, they are read-only and
>> therefore can't be used in update/delete operations.
>>
>> I've read lots on views and CouchDB seems great at getting information
>> out in all sorts of ways, however basic bulk update/delete operations
>> are so far alluding me.
>>
>> My main exposure to DB's at this time is using SQLite and these sorts
>> of things are of course easy and quick to do in SQL.
>>
>> Hopefully I'm missing something obvious.
>>
>> ---
>> Neville Franks,  http://www.surfulater.com

Neville Franks,  http://www.surfulater.com


Mime
View raw message