I've seen a few ideas on this like instead of like Create, Update, Insert, Delete (CRUD) use Get and Put. That's good. However, I haven't seen much yet on how to deal with complexity. I've been told, "just write a method for every query type that you need".
Most of NOSQL seems okay to me until I start thinking about qualifiers (a where clause) -- there could be so many variations. Is there already a good scheme for implementing qualifiers in a sensible way, using just method names & argument conventions? Perhaps there's some kind of verb / noun scheme that works well, but which isn't a language in its own right.
I'm not after the 'right' answer... I'm hoping that there are a few schools of thought that I could learn from.
Found this blog post from the maker of RavenDB: http://ayende.com/blog/4562/ravendb-index-management
Can we implement more than one index on a class?
I even found that it might be possible to serialize anonymous delegates http://blogs.microsoft.co.il/blogs/aviwortzel/archive/2008/06/20/how-to-serialize-anonymous-delegates.aspx I suppose if this is possible, that they might use something like this.
But what if we don't have access to the same assembly (e.g. Silverlight). Found this post here: http://ayende.com/blog/4766/accessing-ravendb-from-silverlight
Is the IEnumerable<T> object searched client-side or server-side? How specific can we get server side in NOSQL in narrowing down the result set before sending it back over the wire, without locking it to one unique id?
UPDATE: I ended up emailing Ayende from RavenDB.