{ // design document views:{ // not sure averageWageByAge:{ map: function(doc, meta) { if(doc.type === 'user') { emit(doc.id, doc); } if(doc.type === 'post') { emit(doc.authorId, doc); } } }, averageWageByAge:{ map: function(user, meta) { if(user.type === 'user') { emit(user.birthday, user.wage); } }, reduce: function(wage, accumulated={count:0, average:0}) { return { count:accumulated.count+1, average:((accumulated.average*accumulated.count)+wage)/ accumulated.count+1 }; } } } }