hey robert, _sum doesn't work on objects :(

David Park   Software Developer

M 416*.*461*.*2649

*Points  *|  More together.

Connect with us: Points <http://l.points.com/69s8/> | Twitter
<http://l.points.com/uxlj/> | Blog <http://l.points.com/vu4y/> | LinkedIn
<http://l.points.com/rjs4/> | Careers <http://l.points.com/juqh/>

TSX: PTS <http://l.points.com/sgf7/>; NASDAQ: PCOM
<http://l.points.com/ko1o/>

111 Richmond St W., Suite 700, Toronto, ON, M5H 2G4, Canada

Connect with me: LinkedIn <https://www.linkedin.com/in/butterdave>



On Wed, Jun 13, 2018 at 3:58 PM Robert Samuel Newson <rnew...@apache.org>
wrote:

> the built-in reduce ("_sum") handles both arrays and objects, so you
> should be able to just do;
>
> map:
> function(doc) {
>   emit(doc.label, {"base":doc.basePoints, "bonus":doc.bonusPoints});
> }
>
> reduce:
> _sum
>
> B.
>
> > On 13 Jun 2018, at 20:40, Aurélien Bénel <aurelien.be...@utt.fr> wrote:
> >
> > Dear David,
> >
> >> I desire that value to be split out by base and bonus points.
> >
> > Then you’ll need an array as the key: a first member for the selection
> and a second one for the grouping.
> >
> >
> > MAP :
> >
> > function(o) {
> >   emit( [o.label, "base"] , o.basePoints);
> >   emit( [o.label, "bonus"], o.bonusPoints);
> > }
> >
> > REDUCE
> >
> > _sum
> >
> > QUERY
> >
> > ?group=true&startkey=["gold"]&endkey=["gold",{}]
> >
> >
> > Regards,
> >
> > Aurélien
> >
> >
> >> Début du message réexpédié :
> >>
> >> De: David Park <david.p...@points.com>
> >> Objet: Rép : couchdb erlang reduce - aggregate object
> >> Date: 13 juin 2018 à 20:17:19 UTC+2
> >> À: user@couchdb.apache.org
> >> Répondre à: user@couchdb.apache.org
> >>
> >> ok. so here's my test
> >>
> >> 3 docs
> >>
> >> {"_id": "a", "label": "gold", "basePoints": 1000, "bonusPoints": 2000}
> >> {"_id": "b", "label": "gold", "basePoints": 10000, "bonusPoints": 20000}
> >> {"_id": "c", "label": "silver", "basePoints": 10000, "bonusPoints":
> 20000}
> >>
> >> Then I took your advice and wrote a javascript (not erlang) view
> >>
> >> function(o) {
> >>   emit(o.label, o.basePoints);
> >>   emit(o.label, o.bonusPoints);
> >> }
> >>
> >> then threw in a reduce of
> >>
> >> _sum
> >>
> >> then I queried my view with group = true where key = label
> >> And I get a response of
> >> {
> >> "rows":[
> >>   {"key":"gold","value":33000}
> >> ]
> >> }
> >>
> >> I desire that value to be split out by base and bonus points.
> >>
> >> David Park   Software Developer
>
>

Reply via email to