I keep seeing people remapping their ORM onto these tools too
I generally work with Rails and we did do some stuff with Mongo (before we threw it out and did a warehouse - which is SQL but deffo not relational IMHO).
The thing that annoyed me was someone wrote an adaptor that worked fine with the tool and gave you some useful abstractions that modelled the way it actually *worked* - then some other dimwit came along and tried to make it look like Active Record - then the developers tried to use it like it *is* active record.
It fell into a world of pain - it works differently, it has a different use case, it uses map/reduce. Don't try and make it look like something with SQL underneath it - use it how it was intended an you will get what you need. A list of key/value pairs you can get to quickly from a key, or a large set of relatively homogenous data you can ask questions of. SQL-type joins just eat resources because you *always* have to do the equivalent of a full table scans to join your reduced sets together. We kept using up all of the memory on our Mongo instance once it got past a certain size.
Pick the right use case, this stuff is brilliant. But the number of use cases compared with SQL is really tiny.
Pedantically, SQL doesn't do a good chunk of the relational model, it's a pragmatic attempt at something that did the bits that were easiest to implement (in the 1980's). A system that implemented a true relational model (as in tuples that contain whole rows, for example) would do everything these systems do and SQL can do. Have a trawl around the O'Reilly catalogue for some of Chris Date's newer work.
I've no idea how to implement this though. But the theory is really sound and complete.