Hi, I have a reduce function like this: // reduce function function (keys, values, rereduce) { var res={}; if(!rereduce){ /* reduce */ for(var val in values){ for(var v_n in values[val]){ 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}; } } } }else{ /* rereduce */ for(var val in values){ for(var v_n in values[val]){ if(res.hasOwnProperty(v_n)){ res[v_n].mi = Math.min(values[val][v_n].mi,res[v_n].mi); res[v_n].ma = Math.max(values[val][v_n].ma,res[v_n].ma); res[v_n].c += values[val][v_n].c; res[v_n].t += values[val][v_n].t; }else{ res[v_n]={'mi':values[val][v_n].mi,'ma':values[val][v_n].ma,'c':values[val][v_n].c,'t':values[val][v_n].t}; } } } } return res; } and it get key, values pair from a map functions that produces these: "01:00:000074" -> {raw: "-0.213"} "01:00:000084" -> {raw: "0.129"} But when I query the view i get this back: "01:00:000074" -> {raw: {mi: {}, ma: {}, c: 1, t: {}}} "01:00:000084" -> {raw: {mi: {}, ma: {}, c: 1, t: {}}} 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}}