incubator-couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benoit Chesneau <bchesn...@gmail.com>
Subject Re: Hierarchical comments Hacker News style
Date Wed, 16 May 2012 13:35:48 GMT
On Wed, May 16, 2012 at 3:19 PM, Luca Matteis <lmatteis@gmail.com> wrote:
> Ok. Where would it be appropriate to build such a tree? Can I do it in
> a list function?
> I'm using Couch directly and not interacting with it using other
> languages, so I need Couch to do all the work.
>
> On Wed, May 16, 2012 at 3:14 PM, Dirkjan Ochtman <dirkjan@ochtman.nl> wrote:
>> On Wed, May 16, 2012 at 2:53 PM, Luca Matteis <lmatteis@gmail.com> wrote:
>>> Isn't there a better way?
>>
>> Since the ordering of descendants depends on the scores of ancestors
>> (if you're talking about getting the whole thread in order), and you
>> don't want to update descendants when ancestors get modified (scores),
>> there by definition is no way to cleanly do this. I think the best way
>> you can do it is to emit the [ancestor_id, score] for each comment,
>> which I think would allow you to build the tree structure in a single
>> loop over all documents:
>>
>> docs, roots = {}, []
>> for key, doc in documents:
>>    if key[0] == null:
>>         roots.append(doc.id)
>>    docs[doc.id] = doc
>>    if key[0]:
>>         docs[key[0]].children.append(doc.id)
>>
>> (In horrible pseudo-Python-JS.)
>>
>> Cheers,
>>
>> Dirkjan



Have a look here :

https://github.com/benoitc/nymphormation

It exactly implement that as a couchapp.

- benoit

Mime
View raw message