A NoSQL database for even the Non-data expert
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.
Pros
- 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.
Cons
- 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.
MongoDB Feature Ratings
Using MongoDB
Pros | Cons |
---|---|
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.
Comments
Please log in to join the conversation