incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Davis <paul.joseph.da...@gmail.com>
Subject Re: startkey
Date Wed, 17 Jul 2013 00:33:54 GMT
No worries. Glad we got it working.


On Tue, Jul 16, 2013 at 5:52 PM, Stephan Bardubitzki <
stephan@bardubitzki.com> wrote:

> Hi Paul,
>
> unfortunately, I'm working only occasionally with CouchDB and hope this
> will change when I have more time to work on my own projects.
>
> Your advise was really helpful and appreciated. What I came up with is a
> map function like this:
>
>  function(doc) {
>     if (doc.kml_id && doc.marker && doc.language) {
>         for (language in doc['language']) {
>             var o = {};
>             o.description = doc.language[language];
>             o.gps = doc.gps;
>             emit([language, doc.kml_id, doc.marker], o);
>         }
>     }
> }
>
> startkey: ["fr", id, 0]. endkey: ["fr", id, {}]
>
> gives me all the data needed either in the key or value argument and
> sorted as needed.
>
> Thanks for bearing with me,
> Stephan
>
>
>
> On 13-07-16 12:45 PM, Paul Davis wrote:
>
>> As the value (the second argument to emit).
>>
>>
>> On Tue, Jul 16, 2013 at 2:45 PM, Paul Davis <paul.joseph.davis@gmail.com>
>> **wrote:
>>
>>  In that case I'd just emit the part of the doc for the language for each
>>> row.
>>>
>>>
>>> On Tue, Jul 16, 2013 at 1:00 PM, Stephan Bardubitzki <
>>> stephan@bardubitzki.com> wrote:
>>>
>>>  Got it, however, it is not quite what I was hoping to accomplish.
>>>>
>>>> The language object of the each doc has 12 languages and
>>>> include_docs=true will response all of them. What can I do to get all
>>>> doc
>>>> properties but just the language 'fr' property, for example, to save on
>>>> data usage on mobile devices?
>>>>
>>>>
>>>>
>>>> On 13-07-15 09:00 PM, Paul Davis wrote:
>>>>
>>>>  Yes, the second example I gave should accomplish that.
>>>>>
>>>>> The {} is an empty JSON object which should sort higher than any value
>>>>> you
>>>>> emit assuming you're not emitting complicated objects which is not
>>>>> suggested due to surprising sort results.
>>>>>
>>>>>
>>>>> On Mon, Jul 15, 2013 at 10:52 PM, Stephan Bardubitzki <
>>>>> stephan@bardubitzki.com> wrote:
>>>>>
>>>>>   Just for clarification, I'm looking after one map function that can
>>>>>
>>>>>> create
>>>>>> a view where all docs that have the same doc.kml_id, are sorted by
>>>>>> doc.marker and only contains the description for a particular language
>>>>>> from
>>>>>> the doc.language array.
>>>>>>
>>>>>> Is this possible with one map function?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 13-07-15 07:15 PM, Stephan Bardubitzki wrote:
>>>>>>
>>>>>>   And I need the doc.marker too, sorted 0...n? Any example?
>>>>>>
>>>>>>> What are the {} for?
>>>>>>>
>>>>>>> Thanks again.
>>>>>>> Stephan
>>>>>>>
>>>>>>> On 13-07-15 07:00 PM, Paul Davis wrote:
>>>>>>>
>>>>>>>   A couple examples might be something like:
>>>>>>>
>>>>>>>> All rows for French:
>>>>>>>>
>>>>>>>> startkey: ["fr"]
>>>>>>>> endkey: ["fr",{}]
>>>>>>>>
>>>>>>>> All rows for a specific kml_id:
>>>>>>>>
>>>>>>>> starkey: ["fr", id]
>>>>>>>> endkey: ["fr", id, {}]
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Jul 15, 2013 at 8:58 PM, Paul Davis <
>>>>>>>> paul.joseph.davis@gmail.com
>>>>>>>>
>>>>>>>>  **wrote:
>>>>>>>>>
>>>>>>>>>     Exactly like that yeah.
>>>>>>>>
>>>>>>>>  On Mon, Jul 15, 2013 at 8:55 PM, Stephan Bardubitzki <
>>>>>>>>> stephan@bardubitzki.com> wrote:
>>>>>>>>>
>>>>>>>>>    Thanks for your response Paul. I think I'm missing
something
>>>>>>>>> important.
>>>>>>>>>
>>>>>>>>>  How do I tell the view that I just need fr - language
and not en,
>>>>>>>>>> de,
>>>>>>>>>> es ...
>>>>>>>>>>
>>>>>>>>>> startkey: ["fr", id, 0] ?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 13-07-15 03:26 PM, Paul Davis wrote:
>>>>>>>>>>
>>>>>>>>>>    You'll need to add an element to the key to emit
the language.
>>>>>>>>>> Pseudo
>>>>>>>>>>
>>>>>>>>>>  code:
>>>>>>>>>>>
>>>>>>>>>>> for language in doc["languages"]:
>>>>>>>>>>>          emit([language, doc.kml_id, doc.marker],
1)
>>>>>>>>>>>
>>>>>>>>>>> Also note that its generally not a good idea
to emit the doc as
>>>>>>>>>>> the
>>>>>>>>>>> value.
>>>>>>>>>>> You should prefer to use include_docs=true in
the query string.
>>>>>>>>>>> Emitting
>>>>>>>>>>> 1
>>>>>>>>>>> allows you to specify "_sum" as a reduce function
to get row
>>>>>>>>>>> counts
>>>>>>>>>>> for
>>>>>>>>>>> specific start/end key pairs.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Jul 15, 2013 at 5:07 PM, Stephan Bardubitzki
<
>>>>>>>>>>> stephan@bardubitzki.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>     Hi there,
>>>>>>>>>>>
>>>>>>>>>>>   this map function
>>>>>>>>>>>
>>>>>>>>>>>> "map": "function(doc) { if (doc.kml_id &&
doc.marker) {
>>>>>>>>>>>> emit([doc.kml_id,
>>>>>>>>>>>> doc.marker], doc) } }"
>>>>>>>>>>>>
>>>>>>>>>>>> and this startkey
>>>>>>>>>>>>
>>>>>>>>>>>> startkey: [id, 0]    --> sorting doc.marker
>>>>>>>>>>>>
>>>>>>>>>>>> let me retrieve data from a couch as needed.
>>>>>>>>>>>>
>>>>>>>>>>>> Now I got the task to add more languages
beside English for
>>>>>>>>>>>> description
>>>>>>>>>>>> properties in an array structure like this
>>>>>>>>>>>>
>>>>>>>>>>>> "language": [
>>>>>>>>>>>>         {
>>>>>>>>>>>>             "en":{
>>>>>>>>>>>>
>>>>>>>>>>>>                     }
>>>>>>>>>>>>         },
>>>>>>>>>>>>         {
>>>>>>>>>>>>              "fr": {
>>>>>>>>>>>>
>>>>>>>>>>>>                      }
>>>>>>>>>>>>         }
>>>>>>>>>>>> ]
>>>>>>>>>>>>
>>>>>>>>>>>> I stuck in figuring out a startkey that let
me retrieve the
>>>>>>>>>>>> sorted
>>>>>>>>>>>> data
>>>>>>>>>>>> only for a particular language.
>>>>>>>>>>>>
>>>>>>>>>>>> Any advice would be really appreciated.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Stephan
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>     ------------------------------********--
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>   Spam/Virus scanning by CanIt Pro
>>>>>>>>>>>>
>>>>>>>>>>> For more information see
>>>>>>>>>>> http://www.kgbinternet.com/********SpamFilter.htm<http://www.kgbinternet.com/******SpamFilter.htm>
>>>>>>>>>>> <http://www.**kgbinternet.com/******SpamFilter.htm<http://www.kgbinternet.com/****SpamFilter.htm>
>>>>>>>>>>> >
>>>>>>>>>>> <http://www.**kgbinternet.com/****SpamFilter.**htm<http://kgbinternet.com/**SpamFilter.**htm>
>>>>>>>>>>> <http://www.**kgbinternet.com/**SpamFilter.**htm<http://www.kgbinternet.com/**SpamFilter.htm>
>>>>>>>>>>> >
>>>>>>>>>>> <http://www.**kgbinternet.com/****SpamFilter.htm<http://kgbinternet.com/**SpamFilter.htm>
>>>>>>>>>>> <http://**kgbinternet.com/SpamFilter.htm<http://kgbinternet.com/SpamFilter.htm>
>>>>>>>>>>> **>
>>>>>>>>>>>
>>>>>>>>>>> <http://www.**kgbinternet.com/**SpamFilter.htm<http://kgbinternet.com/SpamFilter.htm>
>>>>>>>>>>> <http://www.**kgbinternet.com/SpamFilter.htm<http://www.kgbinternet.com/SpamFilter.htm>
>>>>>>>>>>> **>
>>>>>>>>>>> **>
>>>>>>>>>>> **>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> To control your spam filter, log in at
>>>>>>>>>>> http://filter.kgbinternet.com
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>    ------------------------------******--
>>>>>>>>>>>
>>>>>>>>>>>  Spam/Virus scanning by CanIt Pro
>>>>>>>>>>
>>>>>>>>> For more information see
>>>>>>>> http://www.kgbinternet.com/******SpamFilter.htm<http://www.kgbinternet.com/****SpamFilter.htm>
>>>>>>>> <http://www.**kgbinternet.com/**SpamFilter.**htm<http://www.kgbinternet.com/**SpamFilter.htm>
>>>>>>>> >
>>>>>>>> <http://www.**kgbinternet.com/**SpamFilter.htm<http://kgbinternet.com/SpamFilter.htm>
>>>>>>>> <http://www.**kgbinternet.com/SpamFilter.htm<http://www.kgbinternet.com/SpamFilter.htm>
>>>>>>>> **>
>>>>>>>> **>
>>>>>>>>
>>>>>>>> To control your spam filter, log in at
>>>>>>>> http://filter.kgbinternet.com
>>>>>>>>
>>>>>>>>
>>>>>>>>   ------------------------------******--
>>>>>>>>
>>>>>>> Spam/Virus scanning by CanIt Pro
>>>>>>>
>>>>>>> For more information see
>>>>>>> http://www.kgbinternet.com/******SpamFilter.htm<http://www.kgbinternet.com/****SpamFilter.htm>
>>>>>>> <http://www.**kgbinternet.com/**SpamFilter.**htm<http://www.kgbinternet.com/**SpamFilter.htm>
>>>>>>> >
>>>>>>> <http://www.**kgbinternet.com/**SpamFilter.htm<http://kgbinternet.com/SpamFilter.htm>
>>>>>>> <http://www.**kgbinternet.com/SpamFilter.htm<http://www.kgbinternet.com/SpamFilter.htm>
>>>>>>> **>
>>>>>>> **>
>>>>>>>
>>>>>>> To control your spam filter, log in at
>>>>>>> http://filter.kgbinternet.com
>>>>>>>
>>>>>>>
>>>>>>>   ------------------------------****--
>>>>>>>
>>>>>> Spam/Virus scanning by CanIt Pro
>>>>>
>>>>> For more information see
>>>>> http://www.kgbinternet.com/****SpamFilter.htm<http://www.kgbinternet.com/**SpamFilter.htm>
>>>>> <http://www.**kgbinternet.com/SpamFilter.htm<http://www.kgbinternet.com/SpamFilter.htm>
>>>>> **>
>>>>>
>>>>> To control your spam filter, log in at
>>>>> http://filter.kgbinternet.com
>>>>>
>>>>>
>>>>>  ------------------------------**--
>> Spam/Virus scanning by CanIt Pro
>>
>> For more information see
>> http://www.kgbinternet.com/**SpamFilter.htm<http://www.kgbinternet.com/SpamFilter.htm>
>>
>> To control your spam filter, log in at
>> http://filter.kgbinternet.com
>>
>>
>

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