Mongo Size Convenience With a Micro Size Learning Curve
May 03, 2016

Mongo Size Convenience With a Micro Size Learning Curve

Tom Maiaroto | TrustRadius Reviewer
Score 9 out of 10
Vetted Review
Verified User
Review Source

Overall Satisfaction with MongoDB

Our engineering department uses MongoDB to power our SaaS. It stores data for our clients to create and configure assets for their account based marketing efforts including A/B testing and personalization.

The configurations for these assets can get fairly complex and contain nested structures. A document store is ideal for this type of data and MongoDB makes it a breeze. Data is needed in web browsers as well, so having native JSON support is very convenient and valuable to us.

Our dashboard features reports for our users and once again MongoDB supports our complex reports using its aggregation framework.

MongoDB's replication has helped our application easily scale to support many clients.
  • Document object storage. JSON (BSON) native with JSON query syntax makes things familiar for JavaScript developers.
  • Generating aggregate reports using the aggregation framework is extremely convenient for analytics and reporting. It saves time.
  • MongoDB scales nicely. Replica sets are easy to bring online and help solve throughout issues for read heavy applications.
  • MongoDB's auto-sharding is fairly easy and helps solve issues for scale when it comes to writing lots of data.
  • When working with large data sets that benefit from many indexes (reads), it can slow down writes.
  • MongoDB is simple to use, but deceptively difficult to master for performance. More documentation around some pitfalls would be great (though there is some and more than there once was, it is improving).
  • MongoDB now has V8, but still runs many operations in a single-threaded capacity. It could be faster for certain tasks.
  • Depending on what's going on, replication lag can be slow and can cause problems.
MongoDB's aggregation framework and map/reduce features have been particularly effective in solving many analytics and reporting needs without having to resort to more sophisticated tools. This ultimately saves people a lot of time and money when compared to implementing more complex map/reduce solutions like Hadoop.

Of course this will depend on how much data is processed and how it is organized, but it does a great job with many common use cases which would typically lead one to a more expensive solution.

Custom functions can be created within MongoDB for use with map/reduce jobs as well. So there's a great deal of flexibility.

Even if a user knows they will ultimately seek out other solutions down the line, MongoDB can help prototype solutions and create MVPs.
  • Faster development of new product features.
  • Cheaper cost of ownership (it's open-source, no licensing fees, easy to host).
This is a very convenient "go to" database for application CRUD operations. So many applications need to create, read, update, and delete records. Here's the trick though - as a product changes, the data does as well. Having a database that makes this process easy and avoids the need to manage a schema and migrations is extremely valuable.

MongoDB may not be the tool for every need but it is often always a tool that gets used for some need or another.
MongoDB is well suited for development speed. It helps teams work with data quickly and the learning curve isn't very steep as compared to SQL queries. It's far more user friendly for both back-end and front-end developer alike.

MongoDB is less appropriate for e-commerce and micro-transaction applications where SQL transactions are of far more benefit. However, it is certainly possible to build e-commerce sites with MongoDB. It has been done. It's just perhaps a little less appropriate.

MongoDB is less appropriate for time-series based data too.

MongoDB Implementation

While the setup and configuration of MongoDB is pretty straight forward, having a vendor that performs automatic backups and scales the cluster automatically is very convenient. If you do not have a system administrator or DBA familiar with MongoDB on hand, it's a very good idea to use a 3rd party vendor that specializes in MongoDB hosting. The value is very well worth it over hosting it yourself since the cost is often reasonable among providers.
  • Implemented in-house
  • Professional services company
We use mLab to help manage and monitor our MongoDB cluster. Their pricing is compeitive and they have excellent service. The monitoring on MongoDB that they provide is valuable for hunting down slow queries and other bottlenecks. It also provides general health and availability information at a glance. Upgrading the size of the cluster is also very easy with their services.
Change management was a small part of the implementation and was well-handled