Leaving aside a couple of small warnings, Brandon Keepers’ answer to the question when should I use MongoDB is:
OK, I think MongoDB makes sense with most web applications. In the end, most apps are just doing glorified CRUD, and don’t need ACID or many of the features of a relational database.
There are times when you definitely should not use MongoDB, like when you need transactions.
NO, NO, NO. If you do that, then you’re definitely doing it wrong! Again!
Take a step back and think about this hypothetical situation: you’ve been driving the same car for the last 30 years. But recently (you’ve come out of your cave and) you discover there are other new shiny cars around, some looking and feeling and offering quite a different feature set than your old beloved car, others just being an upgraded version of your old cosy car.
Question is: would you go to the first car dealer and just get one of these “upgraded” cars? Or would you take some time to look at all these shiny new toys and see how each of them would improve your driving experience and safeness?
Ignoring for a moment my interest in shiny new things, I think we should always keep eyes open, evaluate our options and try to reach conclusions based on what we need. Remaining always inside our comfort zone will not help us experience the new, the better, the different.
So, what is my answer to the question “when should I use MongoDB”: only if it makes sense. Or expanding on this a bit, I’d say you should take your time to analyze your options and think about what you need firstly. Think about your data and your app data access patterns. Then use MongoDB only if is the best tool for your current job.