var map = function() { var key = { year: this.date.getFullYear(), //month: this.date.getMonth(), day: this.date.getDate() }; key['domain'] = this.domain; key['stat'] = "yandexCitation"; emit(key, this.stats.yandexCitation); key['domain'] = this.domain; key['stat'] = "pageRank"; emit(key, this.stats.pageRank); key['domain'] = this.domain; key['stat'] = "yandexIndex"; emit(key, this.stats.yandexIndex); key['domain'] = this.domain; key['stat'] = "googleIndex"; emit(key, this.stats.googleIndex); }; var reduce = function(key, values) { function median(values) { values.sort( function(a,b) {return a - b;} ); var half = Math.floor(values.length/2); if(values.length % 2) return values[half]; else return (values[half-1] + values[half]) / 2.0; } return median(values); }; db.SitesHistory.mapReduce(map, reduce, { out: { inline: 1 } });