I like mongo&#x27;s interface (most of the time)... but when you get to more interesting queries, it gets far more weird than even SQL... I wrote an early node API almost mirroring the JSON query interface (was easy enough to do filtering on sensitive fields), and it worked really well.<p>That said, it was really clunky dealing with ordering as JSON doesn&#x27;t guarantee serialization order (sort fields), and that was cumbersome to work around iirc...<p>Today RethinkDB would be my first choice for a similar solution... better ops interfaces with replication + failover.  Instead of having to do a replica of a sharded system in mongo for distribution with redundancy.  Also, while the query interface is a little more complicated to get started with, when your queries get more interesting, it&#x27;s not nearly as messy as mongo gets.