couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tom Sante <tom.sa...@gmail.com>
Subject Re: Reduce function results
Date Fri, 21 May 2010 08:01:13 GMT
Yeah I'll try that, see if it gives me any clues.
Is there a way to run your code manually for debugging via the command 
line with the JS engine the way couch calls it to build the view? (like 
an interactive mode of couchjs)

On 21/05/10 04:59, Zachary Zolton wrote:
> Reduce functions can be tricky. My best advice: try log()'ing all your
> input and intermediary results; the answer usually jumps out to ya.
>
> On Thursday, May 20, 2010, Tom Sante<tom.sante@gmail.com>  wrote:
>> On 20/05/10 23:52, David Goodlad wrote:
>>
>> On Thu, May 20, 2010 at 9:38 PM, Tom Sante<tom.sante@gmail.com>    wrote:
>>
>> Hi,
>>
>> I have a reduce function like this:
>> [snip]
>> So for some reason if there is only 1 element to be reduced, on the line of
>> res[v_n]={'mi':v,'ma':v,'c':1,'t':v};
>> v becomes v={} and not the actual number. Any ideas why?
>>
>> I tested the reduce function with the command line 'js' and send it the
>> above test keys manually as function argument and then it does result in the
>> correct return:
>> "01:00:000074" ->    {raw: {mi: -0.213, ma: -0.213, c: 1, t: -0.213}}
>> "01:00:000084" ->    {raw: {mi: -0.213, ma: -0.213, c: 1, t: -0.213}}
>>
>>
>> Sounds like you need to specify group_level; Try playing around in
>> Futon, you'll see a group_level dropdown.
>>
>> Dave
>>
>>
>> Why would I need a group_level parameter?
>> My key is a simple string "01:00:000074".
>> Its my values don't get correctly generated by couchjs, since it does out but proper
values in normal commandline js.
>>
>>          var v = new Number(values[val][v_n]);
>>          if(res.hasOwnProperty(v_n)){
>>              res[v_n].mi = Math.min(v,res[v_n].mi);
>>              res[v_n].ma = Math.max(v,res[v_n].ma);
>>              res[v_n].c++;
>>              res[v_n].t += v;
>>          }else{
>>              res[v_n]={'mi':v,'ma':v,'c':1,'t':v};
>>          }
>>
>> It seems that in the above part in the 'else' case the v isn't a number but an empty
object {}
>>


Mime
View raw message