Reverse the key. [userid, time] CouchDB is all about understanding collation. Basically views are sorted/grouped from left to right alphanumeric. See http://wiki.apache.org/couchdb/View_collation for the finer details as there are more rules than the basics I mention.
so the reversal sorts the view by userid first, then date as string. Instead of sorting by dates then userids. You do it this way because you know the exact userid, but not the exact date. If you knew the exact date, but not the userid, what you have currently would be better. - Jim Sent from my iPad On Feb 11, 2012, at 1:54 PM, "Mathieu Castonguay" <[email protected]> wrote: > I have a simple document named Order structure with the fields id, name, > userId and timeScheduled. > > What I would like to do is create a view where I can find the > document.idfor those who's userId is some value and timeScheduledis > after a given date. > > My view: > > "by_users_after_time": { > "map": "function(doc) { if (doc.userId && doc.timeScheduled) { > emit([doc.timeScheduled, doc.userId], doc._id); }}" > } > > If I do > localhost:5984/orders/_design/Order/_view/by_users_after_time?startKey="[2012-01-01T11:40:52.280Z,f98ba9a518650a6c15c566fc6f00c157]" > I get every result back. Is there a way to access key[1] to do an if > doc.userId == key[1] or something along those lines and simply emit on the > time? > > This would be the SQL equivalent of select id from Order where userId = > "f98ba9a518650a6c15c566fc6f00c157" and timeScheduled > > 2012-01-01T11:40:52.280Z; > > I did quite a few Google searches but I can't seem to find a good tutorial > on working with multiple keys. It's also possible that my approach is > entirely flawed so any guidance would be appreciated. > > Thank you, > > Matt
