couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matthew Woodward <m...@mattwoodward.com>
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
"repost."

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

With a reduce and ?group=true this outputs things like:
{"key":["Office1",{"firstName":"Francine","lastName":"Smith"}],"value":true},
{"key":["Office2",{"firstName":"Stan","lastName":"Smith"}],"value":true}

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:
http://server/database/_design/foo/_view/bar?group=true&startkey=[
"Baz","01/01/2011"],&endkey=["Baz",{}]

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:
http://server/database/_design/witnesses/_view/byOffice?group=true&startkey=[
"Office1"]&endkey=["Office1",{}]

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:
http://server/database/_design/witnesses/_view/byOffice?group=true&startkey=[
"Office1"]

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

Thanks!
-- 
Matthew Woodward
matt@mattwoodward.com
http://blog.mattwoodward.com
identi.ca / Twitter: @mpwoodward

Please do not send me proprietary file formats such as Word, PowerPoint,
etc. as attachments.
http://www.gnu.org/philosophy/no-word-attachments.html

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