Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <script src="//cdn.jsdelivr.net/pouchdb/3.2.0/pouchdb.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
var db = new PouchDB('groupByTest');
//db.destroy();
db.bulkDocs([
  {"_id": "1", "title": "Rambo",        "year": 2008, "genre": "Action"},
  {"_id": "2", "title": "Forrest Gump", "year": 1994, "genre": "Drama"},
  {"_id": "3", "title": "Gladiator",    "year": 2000, "genre": "Action"},
  {"_id": "4", "title": "The Mask",     "year": 1994, "genre": "Comedy"}
]).then(function () {
  
  var map = function(doc) {
    emit(doc.genre, 1); 
  };
  var reduce = function(keys, values, rereduce) {
    return sum(values);
  };
  // if you are just summing (like the reduce function above is), it is better to use the build-in sum
  reduce = "_sum";
  db.query({map: map, reduce: reduce}, {reduce: true, group: true, group_level: 1}, function(err, response) {
    console.log(JSON.stringify(response.rows));
    /* The result:
      [
        {"key":"Action", "value":2},
        {"key":"Comedy", "value":1},
        {"key":"Drama",  "value":1}
      ]
    */
  });
  
  
});
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
acdcjuniorpro
0viewers