Differences between revisions 3 and 4
Revision 3 as of 2008-10-26 06:24:10
Size: 1069
Editor: 97-116-45-29
Comment:
Revision 4 as of 2008-10-26 06:31:40
Size: 1090
Editor: 97-116-45-29
Comment: qualify my group=true comment
Deletions are marked like this. Additions are marked like this.
Line 40: Line 40:
Note: when retrieving data from this view, by default the results will be reduce to a single row. To get counts reduced by tag, use the ?group=true option when retrieving data from the view, see HttpViewApi. Note: when retrieving data from this view, if the results are reduced to a single row, you may need to use the ?group=true option to get counts reduced by tag. This may be a feature in version 0.8.0 and forward? see HttpViewApi.

Tags are stored as a list of strings inside the document:

{
 "_id":"123BAC",
 "_rev":"946B7D1C",
 "type":"post",
 "subject":"I like Planktion",
 "author":"Rusty",
 "created":"2006-08-15T17:30:12Z-04:00",
 "body":"I decided today that I don't like baseball. I like plankton.",
 "tags":["plankton", "baseball", "decisions"]
}

CouchDB Views

Retrieve all tags with their counts:

map

function(doc) {
  if (doc.type == 'post' && doc.tags) {
    doc.tags.forEach(function(tag) {
      emit(tag, 1);
    });
  }
}

reduce

function(keys, values) {
  return sum(values);
}

Note: when retrieving data from this view, if the results are reduced to a single row, you may need to use the ?group=true option to get counts reduced by tag. This may be a feature in version 0.8.0 and forward? see HttpViewApi.

Retrieve documents by a specific tag:

map

function(doc) {
  if (doc.type == 'post' && doc.tags) {
    doc.tags.forEach(function(tag) {
      emit(tag, doc);
    });
  }
}