couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benoit Chesneau <bchesn...@gmail.com>
Subject reduce limit
Date Sat, 06 Jun 2009 07:52:18 GMT
Hi,

This morning I hit reduce limit while trying to recreate a tree from
documents containing a "parent" member. I tried first to create an
index of documents and add to value a children member :

function(keys, values, rereduce) {

  var idx_comments = {};
  if(!rereduce) {
    for (var i in values) {
      value = values[i];
      children = [];
      if (idx_comments[value['_id']] != undefined)
        children = idx_comments[value['_id']]['children'];
      value['children'] = children
      idx_comments[value._id] = value;

      if (value['parentid']) {
        if (idx_comments[value['parentid']] == undefined)
          idx_comments[value['parentid']] = {};
        if (idx_comments[value['parentid']]['children']  == undefined)
          idx_comments[value['parentid']]['children'] = [];
        idx_comments[value['parentid']]['children'].push(value._id);
      }
    }
  } else {
    return values;
  }

But I wonder if it's the right way to do it, since reduce will be
calculated each time in this case. For now I go back on client side
but it may be better I guess.

- benoƮt

  return idx_comments;
}

Mime
View raw message