couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sean Copenhaver <sean.copenha...@gmail.com>
Subject Re: convert data query into map/reduce function
Date Mon, 16 May 2011 15:41:54 GMT
Dang hit the wrong key!

Usually the convention is you have some kind of 'type' attribute (so type
checking) on your documents or you check that all the fields you are
interested in exist (more of the duck approach) in your map function. So
perhaps your map function is something like:

function(doc){
    if (doc.type != 'line_item') return;

    emit([doc.l_shipdate, doc.l_returnflag, doc.l_linestate], doc);
}

reduce function would then aggregate everything:

function(key, values, rereduce){
   var sum_qty = 0;
   for(var i = 0; i < values.length; i++){
       sum_qty += values[i].l_quantity;
   }

   /* aggregate others */

   return {
      /* build return object */
   }
}

You can filter by date with parameters to the view something like
'startkey=["<date to filter>"]' in the query parameters.

Just trying to give you a rough idea (hopefully helping more the hurting
yoru understanding), although there is probably a better way to do this. You
may want to check out the book for some basic info.
http://guide.couchdb.org/draft/cookbook.html

On Mon, May 16, 2011 at 11:35 AM, Sean Copenhaver <sean.copenhaver@gmail.com
> wrote:

> Usually the convention is you have some kind of 'type' attribute (so type
> checking) on your documents or you check that all the fields you are
> interested in exist (more of the duck approach) in your map function. So
> perhaps your map function is something like:
>
> function(doc){
>     if (doc.type != 'line_item') return;
>
>     var value = {
>
>
>
>     emit([doc.l_shipdate, doc.l_returnflag, doc.l_linestate], {
> }
>
> On Mon, May 16, 2011 at 11:06 AM, Mauro Fagnoni <mauro.fagnoni@gmail.com>wrote:
>
>> Stefan I'm trying to convert this sql query in an identical to the
>> document
>> I created in couchdb. Unfortunately, it is the first time using this
>> database and would like to understand how to translate the query using
>> only
>> the wiki because I have not figured out how to do a lot
>>
>> 2011/5/16 Stefan Matheis <matheis.stefan@googlemail.com>
>>
>> > i think a short example would be really helpful .. especially related
>> > to your data-structure .. and the expected behaviour. do you already
>> > have an reduce function, but it does not work like you'd have it to?
>> >
>>
>>
>>
>> --
>> -----------------------------------------------
>> [-------WHOAMI------] Mauro Fagnoni
>> [----------ICQ#---------] 279572903
>> [--------MSNID--------] maurofagnoni@yahoo.it
>> [--YAHOOMSNID--] maurofagnoni@gmail.com
>> [--GOOGLETALK--] mauro.fagnoni@gmail.com
>> [-GOOGLEWAVE-] mauro.fagnoni@googlewave.com
>> [------JABBER-------] mauro.fagnoni@gmail.com
>> [------SKYPE--------] mauro.fagnoni
>> [-----LinuxUser#----] 346345
>> [----------Blog---------] http://kingmauro.wordpress.com
>> -----------------------------------------------
>>
>
>
>
> --
> β€œThe limits of language are the limits of one's world. β€œ -Ludwig von
> Wittgenstein
>



-- 
β€œThe limits of language are the limits of one's world. β€œ -Ludwig von
Wittgenstein

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