couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matthew Woodward <>
Subject Start and End Key with Map as Part of Key
Date Tue, 25 Jan 2011 00:00:49 GMT
This is actually from another thread but since it might have gotten buried
by the end (and was a bit of a change in topic) I hope folks don't mind the

I have the following map function:
function(doc) {
  if ( != '' && doc.witnesses != '[]') {
    doc.witnesses.forEach(function(witness) {
      if (witness.firstName != '' && witness.lastName != '') {
        var wit = {};
        wit.firstName = witness.firstName;
        wit.lastName = witness.lastName;
        emit([, wit], null);

With a reduce and ?group=true this outputs things like:

In other instances where my key is an array and the second value is a string
(let's use a date string as an example), I do something like this:

That will give me all results with "Baz" in the first array element,
starting with 01/01/2011, and then all the rest of results for Baz
regardless of what the date is via the {} in the endkey.

In the case of this data, however, if I want to get back all witnesses for a
specific office this doesn't work:

That yields 0 rows. If I do this, it works in terms of *starting* with the
correct office, but I can't figure out the correct endkey to get it to only
show witnesses for that particular office:

Is this because the second element of my array key isn't a string?

Matthew Woodward / Twitter: @mpwoodward

Please do not send me proprietary file formats such as Word, PowerPoint,
etc. as attachments.

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message