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