Dear wiki user,

You have subscribed to a wiki page "Couchdb Wiki" for change notification.

The page "Built-In_Reduce_Functions" has been deleted by JoanTouzet:

https://wiki.apache.org/couchdb/Built-In_Reduce_Functions?action=diff&rev1=7&rev2=8

Comment:
Migrated to 
http://docs.couchdb.org/en/latest/ddocs.html#reduce-and-rereduce-functions

- <<Include(EditTheWiki)>>
  
- = Built-In Reduce Functions =
- 
- See also the 
[[http://docs.couchdb.org/en/latest/ddocs.html#reduce-and-rereduce-functions|official
 documentation]] for this topic.
- 
- <<TableOfContents()>>
- 
- CouchDB has three built-in reduce functions. These are implemented in Erlang 
and run right inside CouchDB, so they are much faster than the equivalent 
JavaScript functions.
- 
- == Usage ==
- To use built-in reduce functions, you simply need to replace your reduce 
function with the string {{{_count}}}, {{{_sum}}} or {{{_stats}}} (without any 
preceding or tailing whitespace).
- 
- Here is an example design document using built-in reduce functions:
- {{{
- {
-   "_id":"_design/company",
-   "_rev":"12345",
-   "language": "javascript",
-   "views":
-   {
-     "all_customers": {
-       "map": "function(doc) { if (doc.type == 'customer')  emit(doc.id, 1) }",
-       "reduce" : "_count"
-     },
-     "total_purchases_by_customer": {
-       "map": "function(doc) { if (doc.type == 'purchase')  
emit(doc.customer_id, doc.amount) }",
-       "reduce": "_sum"
-     }
-   }
- }
- }}}
- 
- == Available Built-In Functions ==
- 
- === _sum ===
- {{{_sum}}} just adds up the emitted values, which must be numbers.
- 
- The !JavaScript equivalent is:
- {{{
- function(keys, values, rereduce) {
-   return sum(values);
- }
- }}}
- 
- 
- === _count ===
- {{{_count}}} counts the number of emitted values. (It's like {{{_sum}}} for 
{{{emit(foo, 1)}}}.) It ignores the contents of the values, so they can by any 
type.
- 
- The !JavaScript equivalent is:
- {{{
- function(keys, values, rereduce) {
-   if (rereduce) {
-     return sum(values);
-   } else {
-     return values.length;
-   }
- }
- }}}
- 
- 
- === _stats ===
- 
- {{{_stats}}} calculates some numerical statistics on your emitted values, 
which must be numbers.
- 
- The reduce output is an object that looks like this:
- {{{
- {"sum":2,"count":2,"min":1,"max":1,"sumsqr":2}
- }}}
- 
- {{{"sum"}}} and {{{"count"}}} are equivalent to the {{{_sum}}} and 
{{{_count}}} reductions. {{{"min"}}} and {{{"max"}}} are the minimum and 
maximum emitted values. {{{"sumsqr"}}} is the sum of the squares of the emitted 
values (useful for statistical calculations like standard deviation).
- 

Reply via email to