You can do the same thing a database would do - filter the first results on that condition before firing off the second query, or do the join "backwards" if you think that's going to be better / there's an index available for that.
> Their section on reliable replications can be resolved by keeping a log of the changes made to the database rather than a log of the queries.
You'd need to define a representation of that log, which ends up being equivalent to writing a NoSQL datastore.
> I don't understand how their NoSql model of "Download the latest doc during a change" is any better. It basically becomes "last writer wins" in a distributed system.
You at least get consistency. And NoSQL gives you the option of building something better like e.g. Riak does.
> The downgrading to NoSql argument makes little sense to me as well. If your frontend is sqlite then you can have Postgres, or MariaDb in your backend. You need to account for having different queries on the front and the back, but the backend is presumably also operating under very different constraints than the frontend.
This is kind of the same as the log replication problem - you want the protocol for what's replicated from frontend to backend to be something simple that you could implement on top of approximately any backend datastore. "SQL queries" aren't that, whereas a simple K/V store protocol could be (e.g. MySQL actually implements the memcached query protocol, or did at one point - that would be very hard to do the other way around).
> I'd actually make an argument that NoSql databases are a type of relational database heavily optimized towards not needing to do joins
Um, WTF? Can you flesh this out at all?
> You'd need to define a representation of that log, which ends up being equivalent to writing a NoSQL datastore.
I think this covered by relational DBs redo/rollback/write-ahead log; whatever you want to call it.
I was really hoping there was a secret to search against null or undefined.
Is there a NoSQL solution that does allow for such queries?