Overall Satisfaction with MongoDB
The Engineering team uses MongoDB as our NoSQL database technology. While we do use a relational database (MySQL) as the primary data warehouse solution, we use Mongo for specific data sources that are very unstructured. The effectiveness of Mongo on schema-less data makes it a great tool for us because accomplishing the same things we do in Mongo in MySQL would take longer and be far less performant.
- Very easy to learn and use. Arguably a simpler query language than traditional SQL.
- Large community and excellent documentation. This means many resources and support available.
- Great for dealing with unstructured data. No need to spend time creating schemas (when unnecessary).
- Cost efficient. Free for many types of use.
- Less flexible than traditional SQL (i.e.: no joins). This means it's not suitable for certain data needs.
- Can take up more space than typical relational DB, which can be problematic for very large data warehouses.
- Not fully transactional (ACID compliant).
- Cost us very little to host and manage.
- Gives us a powerful datastore for unstructured data, which saves development time having to build similar solutions in a relational database
- Very performant (fast), which helps the business run efficiently.
MongoDB is the best NoSQL database out there. There are others, but Mongo has the largest community, is very easy to set up, and is extremely performant. Compared to a relational DB (like MySQL or Postgres) is like comparing apples and oranges. One isn't better or worse than the other. It more depends on the particular data you are working with and what you need to do with that data. That will determine which option to go with.
Mongo doesn't cost us much to use, so we have no reason to assess the cost. In terms of functionality, it gives us exactly what we want in terms of easily storing and accessing large amounts of unstructured data. We plan to increase our usage of Mongo because it has proven to be very effective and performant.
If you need a database that can store and handle unstructured data very easily and that is performant, MongoDB is a great solution. It is very easy to set up and has a large community of users. Mongo can integrate with all of the major languages (ie: Java, Python, etc.). If you need to store very complex, structured data that needs to be related, a traditional relational DB might be a better option.