With any new technology comes a wave of marketing happy talk, which in turn leads to inexperienced developers "jumping on the train" of a new fad. Inevitably, these newbies find themselves disappointed that the technology doesn't deliver on their inflated expectations.
A case in point is the NoSQL movement, which has been the darling of the software world for the past year. The backlash is already in full swing. Just this past week or so, the blogs have been abuzz with hate for MongoDB in particular. On the face of it, these critiques appear to be scathing indictments not only of MongoDB but also, possibly, the very idea of a document databases or even the whole NoSQL/big data movement.
[ Also check out "Flexing NoSQL: MongoDB in review." | Discover what's new in business applications with InfoWorld's Technology: Applications newsletter. | Keep up with the latest approaches to managing information overload and compliance in InfoWorld's Enterprise Data Explosion Digital Spotlight. ]
Dig deeper, however, and I'm not sure these self-appointed critics are holding the screwdriver from the right end. Here are some excerpts from several recent posts -- and my responses.
Repeating the same mistake only bigger
In "Why I migrated away from MongoDB," Siddharth Sharma felt MongoDB failed to live up to his expectations for his project, which he described thusly:
digiDoc is all about converting paper documents like receipts and business cards into searchable database, and so a document database seemed like a logical fit(!).
Document databases are not at all ideal for complicated big data analytics and gigantic map-reduce jobs. Yes, you can. Yes, people do. In general, no, you shouldn't.
MongoDB is not a search engine. While it offers search, if search really is your business, then maybe you need a search engine like Solr/Lucene. Sharma continues:
I completed a migration to Postgres yesterday. Very happy. Aggregation is a breeze, search is a breeze, and we've built some pretty powerful tag search and management features that do not even bear thinking about in MongoDB.