couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ryan Richins <richi...@mac.com>
Subject Re: How to query multi item key
Date Tue, 08 Sep 2009 18:54:01 GMT
Thanks for the response,

The reason I have it the way I do is the same IP can show up multiple  
times on different dates and the application allows the user to enter  
an IP and a date range and see each time the IP has been entered in  
the db.

So 90% of the queries are something like:

emit([doc['ip'], doc['created_at']], null);

http://localhost:5984/foo/_design/test/_view/by_ip_and_created_at?startkey= 
["27.0.0.1" ,"2009/08/01"]&endkey=["27.0.0.1","2009/08/16"]

Now the customer wants a page that can show ALL ip's in a given date  
range and as a result I was trying to use the views already defined.

So if I need to query data both ways, any suggestion.

Thanks,

Ryan

On Sep 8, 2009, at 2:34 PM, Paul Davis wrote:

>> {"key":["27.0.0.1","2009/08/12 18:37:06 +0000"],"value":null},
>> {"key":["12.0.0.1","2009/08/13 02:29:57 +0000"],"value":null},
>> {"key":["17.0.0.1","2009/08/14 21:25:27 +0000"],"value":null},
>> {"key":["31.0.0.1","2009/08/15 02:54:03 +0000"],"value":null},
>> {"key":["11.0.0.1","2009/08/16 08:35:15 +0000"],"value":null},
>> {"key":["12.0.0.1","2009/08/17 19:21:59 +0000"],"value":null}
>>
>> If I want all of the IP's in a given date range (2009/08/13 -  
>> 2009/08/16)
>> what is the right way to construct the query?  The hang-up is  
>> trying to
>> figure out the right value for the first item in the key to act as  
>> a '*'
>
> That's because you can't. The answer is to swap the order of your  
> emit, thus:
>
> emit([doc.ip, doc.date], null) -> emit([doc.date, doc.ip], null)
>
> And then use:
>
> http://localhost:5984/foo/_design/test/_view/by_ip_and_created_at?startkey= 
> ["2009/08/13",
> null]&endkey=["2009/08/16", {}]
>
> HTH,
> Paul Davis


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