A NoSQL database for even the Non-data expert
April 02, 2018

A NoSQL database for even the Non-data expert

Joshua Weaver | TrustRadius Reviewer
Score 8 out of 10
Vetted Review
Verified User

Overall Satisfaction with MongoDB

We utilize MongoDB for both an internal custom CRM that handles our day to day operations and also in some of our products that are currently in service. We also have some apps in development that are yet to launch which use it. MongoDB is a fast and efficient NoSQL data layer for our web apps that allows us to be flexible and iterative with our development.
  • Easy to learn. When I picked up MongoDB for the first time, I had little background in database management or modeling. If you have a background in javascript (and JSON)... then you can figure out how to use MongoDB pretty fast.
  • Fast performance.
  • It's relatively easy to set up in certain environments because there are lots of ready-made solutions out there.
  • There's a lot of support in the existing ecosystem for it —, especially in the node.js realm.
  • Query syntax is pretty simple to grasp and utilize.
  • Aggregate functions are powerful.
  • Scaling options.
  • Documentation is quite good and versioned for each release.
  • An aggregate pipeline can be a bit overwhelming as a newcomer.
  • There's still no real concept of joins with references/foreign keys, although the aggregate framework has a feature that is close.
  • Database management/dev ops can still be time-consuming if rolling your own deployments. (Thankfully there are plenty of providers like Compose or even MongoDB's own Atlas that helps take care of the nitty-gritty.
  • We didn't have to spend time and money on much training in learning database management
  • It helped us get to market faster with a few different products
  • We aren't pushing it to any limits yet so I can't give any hard numbers on performance or sharding stats.
  • Firestore
I recently tried out Firestore from the Google firebase family of development products. While it allows structuring of data similar to MongoDB, it handles things a little differently. MongoDB documents are incredibly flexible and can be structured really any way you can structure a JSON object with a few additions. I felt like Firestore's query syntax was super easy to grasp, although it wasn't as powerful or flexible straight away as a MongoDB query. For example, you can combine a lot more logical operators easily in a Mongo query while I couldn't figure out how to do so on a Firestore query. And there's no regex search for text-based/full-text searching in Firestore like there is in MongoDB. I ended up ditching Firebase after a while because it had other limitations that weren't right for our project. However, I would still choose it for certain projects if I found it to be a good fit for the project and benefited from having an integrated data layer. It made a lot of other app development hurdles like authentication painless and easy.
Familiarity can be a great reason to continue use of a product as it affords you speed and tight accuracy in execution. Although I would love to try PostgreSQL as I've heard a lot of great things about it, MongoDB has not given me any reason or cause for concern in the projects that we have thrown at it.
If you are a small development company or don't have access to experienced DBA folks, MongoDB can be a good choice for the developer to take the data by the horns.
MongoDB is easy to handle when it comes to migrations because of its schemaless nature.
It can help you get to market faster because you're not spending a ton of time with dev ops and organizing data structures. You can iterate pretty easily. I would say it's a good choice for most web apps, but you might run into restrictions on certain data queries that MongoDB just can't do as efficiently as a relational database.
It can also be hard for some folks coming from a relational data model background. The idea of denormalized or redundant data can feel dirty to some. But the speed and performance in development and execution appear to make up for those faults.

MongoDB Feature Ratings

Performance
9
Availability
9
Concurrency
8
Security
8
Scalability
8
Data model flexibility
10
Deployment model flexibility
9

Using MongoDB

I'm not a database expert by any means. But MongoDB has helped lower the barrier to entry in the world of full stack development. It has an expressive and easy to understand syntax and API. Additionally, their documentation is really quite detailed and easy to follow. Anyone with javascript experience should be able to work with it.
ProsCons
Like to use
Relatively simple
Easy to use
Technical support not required
Well integrated
Consistent
Quick to learn
Convenient
Familiar
None
  • I like the javascript nature of the query syntax and API.
  • Structuring data is just like structuring JSON.
  • Some sophisticated reporting and querying can be done with relative ease with the Aggregate frameworks.
  • Relational data joins
  • Normalized data (though the main usage pattern is to avoid this - sometimes it's hard to avoid, however)
  • Structuring data for how you need to access it.