You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2013/11/23 01:31:11 UTC
git commit: updated refs/heads/master to 2804fc4
Updated Branches:
refs/heads/master 98d08909a -> 2804fc4e0
Improve _sum and _stats JS equivalents
Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/2804fc4e
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/2804fc4e
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/2804fc4e
Branch: refs/heads/master
Commit: 2804fc4e0a1f8b6192835069375ac33d9aa5307d
Parents: 98d0890
Author: Robert Newson <rn...@apache.org>
Authored: Sat Nov 23 00:30:10 2013 +0000
Committer: Robert Newson <rn...@apache.org>
Committed: Sat Nov 23 00:30:50 2013 +0000
----------------------------------------------------------------------
share/doc/src/couchapp/ddocs.rst | 46 +++++++++++++++++++++--------------
1 file changed, 28 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb/blob/2804fc4e/share/doc/src/couchapp/ddocs.rst
----------------------------------------------------------------------
diff --git a/share/doc/src/couchapp/ddocs.rst b/share/doc/src/couchapp/ddocs.rst
index 2625d14..754b9b7 100644
--- a/share/doc/src/couchapp/ddocs.rst
+++ b/share/doc/src/couchapp/ddocs.rst
@@ -126,12 +126,12 @@ JavaScript below:
.. code-block:: javascript
// could be replaced by _sum
- function(keys, values){
- sum(values);
+ function(keys, values) {
+ return sum(values);
}
// could be replaced by _count
- function(keys, values, rereduce){
+ function(keys, values, rereduce) {
if (rereduce) {
return sum(values);
} else {
@@ -140,21 +140,31 @@ JavaScript below:
}
// could be replaced by _stats
- function(keys, values, rereduce){
- return {
- 'sum': sum(values),
- 'min': Math.min.apply(null, values),
- 'max': Math.max.apply(null, values),
- 'count': values.length,
- 'sumsqr': (function(){
- var sumsqr = 0;
-
- values.forEach(function (value) {
- sumsqr += value * value;
- });
-
- return sumsqr;
- })(),
+ function(keys, values, rereduce) {
+ if (rereduce) {
+ return {
+ 'sum': values.reduce(function(a, b) { return a + b.sum }, 0),
+ 'min': values.reduce(function(a, b) { return Math.min(a, b.min) }, Infinity),
+ 'max': values.reduce(function(a, b) { return Math.max(a, b.max) }, -Infinity),
+ 'count': values.reduce(function(a, b) { return a + b.count }, 0),
+ 'sumsqr': values.reduce(function(a, b) { return a + b.sumsqr }, 0)
+ }
+ } else {
+ return {
+ 'sum': sum(values),
+ 'min': Math.min.apply(null, values),
+ 'max': Math.max.apply(null, values),
+ 'count': values.length,
+ 'sumsqr': (function() {
+ var sumsqr = 0;
+
+ values.forEach(function (value) {
+ sumsqr += value * value;
+ });
+
+ return sumsqr;
+ })(),
+ }
}
}