I'm looking into this, obviously, and it is very clear that the mindset is very different.
Note, I have no special knowledge, and I didn't actually play with that at all. I just went over the docs briefly.
I've just read the docs, but what pops to mind is that this is "Demoable by default", and that you are going to have a lot of issues working with that for real.
* SP, UDF and Triggers in JavaScript replicate _all_ the usual issues about deployment of schema in relational world.
Have fun trying to manage that outside of your own source code, and have fun with someone making changes to that on your systems in production, only to be rolled back on the next update, or forgetting to push that to production and seeing the application fail or have bugs.
* Indexing - I don't know if you noticed, but the "index everything by default" is on by default. That make it very easy to handle things, if you have small documents and running on a small scale. But indexing has a cost, a non trivial cost. That means that if you have big / deep documents, and you run with the default indexing, you are going to slow down significantly.
They have an option to not index stuff, or just index specific paths. But that just mean _more_ stuff that you need to maintain, and probably need to set the indexing configuration in both prod & dev. I expect to get issues in going to prod as well (dev has index everything by default, prod has specific stuff indexed).
There is no word on what happens when you need to change the index configuration for a collection. I'm not really encouraged by that, my guess that it is likely to be a BIG thing. Especially if you have a lot of data in your collection.
* Cross document queries - At least according to the documentation, I don't think that those are possible. The queries they have in the docs all show operations on the same document only. It also make sense considering they are running distributed, so doing cross document stuff would be very hard.
But that really limits the kind of things that you can do.
* Computation during query - they allow that, and that basically means that you can kiss performance goodbye for anything complex. The use of UDF in queries is also pretty scary to me. Because they are a perf killer. I assume that a lot of advanced functionality is going to be exposed through those UDF, maybe even LoadDocument or an equivalent of that. So you could try to query something based on a related document field, but that would be an O(N) operation.
Welcome back, table scans.
* No computational indexing at all. No way to say "index the sum total of this order", for example. So you would have to do that in a UDF, which would do an aggregation operation on the entire document, _during query_.
* Transactions - those appear to be handled via a stored procedure that is running on the server. So if you want to do something as simple as saving a new order and increment the # of orders for the customer, you can't do that without writing a SP (with all the associated cost around that).
* Requests & Performance - They don't appear to have any concept of batching operations. And you appear to be charged / limited per # of operation / sec. Also note that they appear to be doing only 500 writes / sec and 1,000 (trivial) queries per second.
RavenDB can do three times that without even trying, and bulk insert gives you a lot more. Especially if you are running on SSD, as they appear to be doing.
* No id generation strategy - That appears to be left to you, or use a guid. Either option isn't very good.
* No aggregation - There doesn't appear to be any option to do any sort of aggregation that I have seen. That means no Group By clause in their SQL, no map/reduce indexing, nothing.
* No built in caching system. No _way_ to actually get a proper caching system. You are back to primitive time based expiry and serving out of date data.
Note that those are things that I figured out from the docs in about 30 minutes or reading them. And I'm focused solely on the core features. Things like geo distribution, data locality, large queries, management options, reporting and much more are all things that cannot be answered by the current docs.
I've also pretty much ignored the client API story, too.