incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Samuel Newson <>
Subject Re: Matching docs which values ending with a specific string
Date Wed, 12 Feb 2014 22:46:23 GMT

Views are ordered by key, you can’t do "ends with" queries without reading the entire view
and filtering at the client.

You *can* do "begins with" using startkey/endkey, since those are adjacent rows.

for example,

function(doc) {
  emit([,], null);

query with ?startkey=["Anytown"]&endkey=["Anytown",{}];

{} is *not* a wildcard, it’s just an empty JSON object, but objects sort higher than strings,
so this startkey/endkey combination captures any of the emitted values where the first item
was "Anytown".

The full details of what values sort higher than other values is here:


On 12 Feb 2014, at 22:35, Tito Ciuro <> wrote:

> Hello,
> I have a database with documents with the following format:
> {
>    "_id" : "12345",
>    "location" : <some_city>.<some town>
> }
> I have values like:
> California.San Francisco
> California.Los Angeles
> Florida.Miami
> ...
> ...
> What I'm trying to do is to match documents that "end with" a particular string. Say
I want to match all states where the town 'Anytown' exists:
> California.Anytown
> Florida.Anytown
> Texas.Anytown
> If I use the following query:
> curl
> It works and returns one document (as expected), but I cannot seem to make it work when
I look for an "end with" string. I have seen examples where %007F is used to match "begins
with". When I use it, I get a {"error":"bad_request","reason":"invalid_json"} message. So
I'm not sure how to proceed.
> Any ideas? Thanks!
> -- Tito

View raw message