I tried that with no success (in fact it completely borked all views
for that document type and had to delete it to get things working
again. I may try and monkey around with these two scripts again to see
what I did wrong.

It really didn't like
day= 1 day

and honestly I'm not even sure what that's supposed to do.

Thanks for the suggestions, I'll let you know if I figure it out. But
I am seriously thinking about using ElasticSearch to make it a more
robust searching solution (I have a lot of searching coming up soon).

-warner

On Sun, Feb 6, 2011 at 3:37 PM, Robert Newson <[email protected]> wrote:
> Within couchdb itself, I think you'd have to do as Nils suggested;
>
> for (day = startDate; day < endDate; day= 1 day) {
>  emit(day, null);
> }
>
> then ?key=<day I want>
>
> Or you could use couchdb-lucene, index startDate and endDate as dates,
> query with ?q=startDate:[day TO maxdate]&endDate:[mindate TO day]
> where 'date' is the date you are searching for.
>
> B.
>
> On Sun, Feb 6, 2011 at 10:31 PM, Nils Breunese <[email protected]> wrote:
>> You could emit a view index entry for every day in the date range of a 
>> document? This could become inefficient storage-wise if you have large date 
>> ranges.
>>
>> What exactly "starts returning records that don't match at all"? In what way 
>> are you querying your view? I have to admit I have no idea how I could get 
>> the information you're looking for from that complex key. Also, the emit 
>> method takes two arguments AFAIK: a key and a value. You seem to be emitting 
>> a single value?
>>
>> Nils.
>> ________________________________________
>> Van: Warner Onstine [[email protected]]
>> Verzonden: zondag 6 februari 2011 22:57
>> Aan: [email protected]
>> Onderwerp: date range querying
>>
>> Ok, been banging my head against this for a while and having no luck
>> figuring out the logical way to do this (other than installing
>> ElasticSearch - which I'll be doing in the near future).
>>
>> I have records that have startDate and endDate ranges. I want to query
>> the view based on today's date. Say I have a record that has a start
>> date of 1/31/2011 and an end date of 2/13/2011 and I want to find out
>> which records fall within today's date.
>>
>> In other words
>> 1/31/2011 < 2/6/2011 < 2/13/2011
>>
>> How in the world do I do that? I've been trying something like this:
>>       var startDate = new Date(doc.startDate);
>>        var endDate = new Date(doc.endDate);
>>        var startYear = startDate.getFullYear();
>>        var startMonth = startDate.getMonth();
>>        var startDay = startDate.getDate();
>>        var endYear = endDate.getFullYear();
>>        var endMonth = endDate.getMonth();
>>        var endDay = endDate.getDate();
>>        emit([
>>            startYear,
>>            startMonth,
>>            startDay,
>>            endYear,
>>            endMonth,
>>            endDay
>>        ]);
>>
>> But as soon as I add in the endYear variable it goes wonky and starts
>> returning records that don't match at all. Any help is greatly
>> appreciated.
>>
>> -warner
>> ------------------------------------------------------------------------
>>  VPRO   www.vpro.nl
>> ------------------------------------------------------------------------
>>
>

Reply via email to