How important is it to you to have the view sorted by doc.dep? If the answer is "not at all," the idiomatically CouchDB way to do this is:
emit(doc.date,[doc.dep,doc.price,doc._id]); and then let users query with startkey/endkey if they need only the docs from the last week. This way you don't need some "in the last week" field that you have to keep updated. On Sun, Jul 24, 2011 at 5:46 PM, Ganzha Alexey <[email protected]> wrote: > Hi. > I am trying figuring out whats the better. > > Say i have a view: > ... > emit([doc.dep,doc.price,doc.date,doc._id]); > ... > > Some users need all docs. And some of them need only docs for the last > week. > Just add an attribute 'last_week' in required documents. > Then, in the view i will check this attribute and there are 2 cases: > > Filter docs in 1 view > > emit(['THIS_IS_FOR_ALL',doc.dep,doc.price,doc.date,doc._id]); > > if (doc.last_week) > emit(['THIS_IS_FOR_LAST_WEEK_ONLY',doc.dep,doc.price,doc.date,doc._id]); > > i will be able to query this view with the additional key member (will user > need all docs, or only last week docs) > > Or make 2 separate views. First: > > emit([doc.dep,doc.price,doc.date,'doc._id]); > > and Second: > > if (doc.last_week) > emit([doc.dep,doc.price,doc.date,doc._id]) > > First case will emit more keys, and the keys will be larger by 1 element. > But in second case, there are 2 views. > > What would you prefer. What is the better for performance? > Thanks >
