MongoDB as bread-and-butter solution
February 09, 2017

MongoDB as bread-and-butter solution

Arnold Daniels | TrustRadius Reviewer
Score 9 out of 10
Vetted Review
Verified User

Overall Satisfaction with MongoDB

MongoDB is used as persistent storage for most applications and services of our organization. Because it's versatile it can be used for all general purpose cases. We only use a different solution if there is a clear benefit of a different database type, like an RDMS or key/value store. The dynamic schema makes working with MongoDB easy for the development team.
  • It is a mature project with good documentation and great support.
  • Querying the database is relatively easy compared to other NoSQL solutions.
  • A dynamic schema removes much of the DB migration issues to typically come with software updates.
  • MongoDB can be difficult to setup properly and manage.
  • The default settings are not secure. You need to actively configure the server for authentication and access control.
  • Good tooling is available, but relatively expensive compared to other open source products.
  • Increased productivity.
  • Added to possibility to implement flexibility into the software. "You need a custom field? Sure no problem."
MySQL is a great for querying related data, but it's unable to store structured data and has a fixed schema. Also SQL can be non-intuitive. DynamoDB, CouchDB and Redis all make querying the data quite difficult and lack important features. The problem CouchDB tries to solve is very specific, making it not a good candidate for the bread-and-butter DB.
MonoDB keeps improving and is the most popular NoSQL database.
MongoDB can be used as general purpose data store ranging from small data sets to very large ones. It works especially well if you want a dynamic shema. Something a RDMS typically does poorly. With MongoDB you do need to consider how you want the query the DB in advance because you can't fetch related data from another collection. If that type of querying is important, a relational DB might be the better option.