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}
      ]
    */
  });
  
  
});