MongoDB certainly has its haters. Some have better reasons for hating MongoDB than others.

I believe that many "Mongo Haters" simply don't understand that MongoDB is not the tool for every job. Relational data is definitely not a good fit for MongoDB.

But a recent blog post on MongoDB's Write Consistency model was much more considered and in-depth than the typical tirade. And it had some follow-up on Hacker News too.

My initial take on this blog post is that it describes an edge case involving replica sets and network disconnects (partitions). And yes, using certain types of queries against most databases (including MongoDB, MySQL, etc.) configured for READ UNCOMMITTED concurrency can produce stale reads.

MongoDB, as compared to say Oracle or SQL Server, definitely pushes more responsibility up to the application level to prevent certain types of conditions. Applications using MongoDB should be properly designed for optimistic concurrency, especially to avoid TOCTTOU problems, and should know when to use a MongoDB calls such as findAndModify() vs doing a separate find() and later a save().