Hi Kevin,

Yes, you're right. I'm still getting my head around Map/Reduce and I'm learning 
how to better lay out the data constantly.

Thanks for the pointers. Much appreciated!

-- Tito

On Feb 12, 2014, at 6:26 PM, Kevin Coombes <[email protected]> wrote:

> Maybe you should completely describe the structure you want.
> 
> {
>  "_id": "12345",
>  "location": {
>       "state": "California",
>        "city": "Florence"
>  }
> }
> 
> Because (1) you can define multiple views that emit any reasonable 
> combination of city and state in any order you might want to query and (2) 
> some day you might want to add an entry like
> 
> {
>  "_id": "98765",
>  "location": {
>       "country": "Italy",
>       "province": "Tuscany",
>        "city": "Florence"
>  }
> }
> 
> On 2/12/2014 6:10 PM, Tito Ciuro wrote:
>> Hello,
>> 
>> Ah! I see. Well, what if I stored the path in an array instead?:
>> 
>> {
>>   "_id" : "12345",
>>   "location" : [<some_city>,<some town>]
>> }
>> 
>> If I emit (doc.location,doc._id), would I be able to write a query that 
>> matches the second element of the doc.location array?
>> 
>> Thanks again for all the help,
>> 
>> -- Tito
>> 
>> On Feb 12, 2014, at 2:48 PM, Jason Winshell <[email protected]> wrote:
>> 
>>> AFAIK, you're describing a CouchDB limitation. You may need to use 
>>> CouchDB-Lucene to get your answers. CouchDB views match keys in an index. 
>>> You can match a prefix, but not a tail. And you can't deal with case 
>>> sensitivity. You might be able to generate a view in which you reverse the 
>>> chars of your location and then match in reverse order (i.e. turning the 
>>> problem into a prefix). I think trying to coerce Couch to do that is nutty. 
>>> Just use CouchDB-Lucene.
>>> 
>>> On Feb 12, 2014, at 2:35 PM, Tito Ciuro <[email protected]> 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 
>>>> http://127.0.0.1:5984/example/_design/test/_view/ends-with-city?key=%22California.Anytown%22
>>>> 
>>>> 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
> 

Reply via email to