couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Zachary Zolton <zachary.zol...@gmail.com>
Subject Re: Deleting Document
Date Tue, 01 Feb 2011 14:54:49 GMT
You could eliminate the recursion in your algorithms by storing an
array of ancestor ID in each of your documents.

Then you could just write a by-ancestor view, like so:

function(doc) {
  doc.ancestor_ids.forEach(function(id) {
      emit(id, null);
  });
}

When it's time to delete a document, you just query this view for all
docs that share the ancestor's ID and delete the matching documents.
Note that if you want to re-parent a doc you will also need to update
all its children in this scheme.

For both of these operations you could consider using bulk doc updates:
http://is.gd/M9aNkg

Depending on your project's requirements, you may benefit by using a
graph database instead.


Cheers,

Zach

On Tue, Feb 1, 2011 at 2:53 AM, Panop S. <pas@vizrt.com> wrote:
> Hi,
>
>
>
>     I have design a document in couchdb like a tree file structure as
>
>
>
>      1
>
>      |--2
>
>      |    |--4
>
>      |
>
>      |--3
>
>
>
>      Doc id : 2
>
>      Parent: 1
>
>
>
>      Doc id : 3
>
>      Parent: 1
>
>
>
>      Doc id : 4
>
>      Parent: 1
>
>
>
>      So when I query I emit it by parent Id .
>
>      Then when get  /id/1 , I will get docid =  2 ,3
>
>
>
>     So if I would like to delete 1 require 2 steps in C# application by
> using recursive call.
>
>
>
> 1.       querying /id/1  and issue get command id = 2  and issue delete
> command id = 2
>
> 2.       querying /id/2  and issue get command id = 4  and issue delete
> command id = 4
>
>
>
>    The problem is if there are a lot of documents it is slow down
> performance by recursive in C# code
>
> and query by loading huge documents  and the others client request cannot
> process.
>
>
>
>    As I can think of now for a lot of document by using  &limit=some number
> to reduce a lot of tons
>
> Of document to be load.
>
>
>
>       And also Can I write some operation to delete indexed id on
> javascript of couchdb ? if so, is this good idea ?
>
>          Any Idea ?
>
>
>
> Big Thanks,
>
>
>
>
>
>
>
>

Mime
View raw message