If you’ve built a medium-sized to large-scale web application in the last few years, you probably considered basing it on the open source LAMP or MEAN stack. The older LAMP stack uses the Linux operating system, Apache web server, MySQL relational database, and PHP programming language. MEAN uses the MongoDB NoSQL database, the Express back-end web application framework, the Angular application platform, and the Node.js JavaScript runtime. MEAN is essentially an end-to-end JavaScript stack. Linux isn’t explicitly mentioned in the acronym, but is usually the OS underneath Node.
In this review, I’ll discuss the MongoDB database, now at version 4. MongoDB is a highly scalable, operational database available in both open source and commercial enterprise versions, and it can be run on-premises or as a managed cloud service. The managed cloud service is called MongoDB Atlas.
MongoDB is far and away the most popular of the NoSQL databases. Its document data model gives developers great flexibility, while its distributed architecture allows for great scalability. As a result, MongoDB is often chosen for applications that must manage large volumes of data, that benefit from horizontal scalability, and that handle data structures that don’t fit the relational model.
Because MongoDB is appropriate for a wide variety of use cases, it is often put forth as a replacement for relational databases. However, while freedom from rigid schema constraints is often beneficial, it’s important to keep in mind that no document database is a universal solution—not even MongoDB.