Gimme Bar: Prototyping with CouchDB and MongoDB
There are a couple of contradictory points in Sean Coates’ story of migrating Gimme Bar from using CouchDB to MongoDB :
By summer 2010, we began work on adding social features […] to Gimme Bar, and CouchDB started giving us trouble. This wasn’t CouchDB’s fault, really. It was more of an architectural problem. We were trying to solve a relational problem with a database that by-design knew nothing about how to handle relationships.
Then he ended up using MongoDB, which as CouchDB knows nothing about handling relationships.
After using both, extensively (for a very specific application, admittedly), I firmly believe that MongoDB is a superior NoSQL datastore solution for PHP based, non-distributed (think Dropbox), non-mobile, web applications.
How can you assess the general superiority of a storage solution based on a “very specific application”? What does PHP have to do with that? Are MongoDB drivers superior to just using HTTP with JSON?
Finally the sane conclusion:
Do I think MongoDB is superior to CouchDB? It depends what you’re using it for. If you need truly excellent eventual-consistency replication, CouchDB might be a better choice. If you want to have your JavaScript applications talk directly to the datastore, CouchDB is definitely the way to go. Do I have a problem with CouchDB, their developers or their community? Not at all. It’s just not a good fit for the kind of app we’re building.
Bottom line, this story sounds like building a prototype while also deciding what tools to use. Nothing wrong with that. But the title(s) should be different.
Original title and link: Gimme Bar: Prototyping with CouchDB and MongoDB (NoSQL databases © myNoSQL)