May 20, 2016
Score 6 out of 10
Overall Satisfaction with MongoDB
We are using MongoDB as the backend for our primary product. We are using it in a clustered environment in a product that supports, currently, 1,000 users a month with that number to grow in the next couple of months. As a database, it is not bad, I just don't find it that good. The application takes a bit of effort to set up, and there is an on going investment to maintain it.
- Ease of deployment is a notable feature of MongoDB.
- MongoDB's clustering ability is far superior than many of the other free databases out there on the market right now.
- Out of the box, MongoDB is insecure. By default, security is disabled and it listens to the world. If you do an internet scan, you can find hundreds of unsecured MongoDB instances. It lends itself to being easy to set up, but this is traded off for security.
- The clustering is dynamic, which hinders the automated deployment of clusters.
- MongoDB allowed us to get our initial version of our proudct out the door quicker and with less investment in time on the database end.
- Although MongoDB allowed us a quicker release, we are now migrating away from it due to issues with clustering and performance. MongoDB requires a lot of resources to do even the most basic clustering.
We are trying to migrate away from MongoDB due to ongoing performance issues, poor clustering and failover support in the application layer, and issues with our schema. MongoDB is a good tool if used correctly, but from what I've seen, most people try to use MongoDB like a SQL database and end up with an extremely complex data structure that pigeonholes you down the road when you are doing certain kind of operations.
MongoDB, I think, would be suited for a caching system. It does not need to be told what kind data it is going to be given, and can be run from memory. Other scenarios where it could be effective is in cases where the inputted data is not known before hand, and will be processed at a later time. Other than that, MongoDB should not be used over a SQL database. The features gained from MongoDB are not worth the additional investment from an engineering and infrastructure perspective.