No worries. Glad we got it working.
On Tue, Jul 16, 2013 at 5:52 PM, Stephan Bardubitzki < [email protected]> 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 <[email protected]> >> **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 < >>> [email protected]> 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 < >>>>> [email protected]> 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 < >>>>>>>> [email protected] >>>>>>>> >>>>>>>> **wrote: >>>>>>>>> >>>>>>>>> Exactly like that yeah. >>>>>>>> >>>>>>>> On Mon, Jul 15, 2013 at 8:55 PM, Stephan Bardubitzki < >>>>>>>>> [email protected]> 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 < >>>>>>>>>>> [email protected]> 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 >> >> >
